給出下面的示例代碼
listb = [[[1,2] , [2,3]] ,[ [3,4] , [5,6]]]
listc =[[9 , 7 ],[8 , 10] ]
lista = zip(listb , listc)
x = pandas.DataFrame(lista ,columns = ['A' , 'B'])
x.explode(['A' ,'B'])
我想爆炸
A B
[[1,2] , [2,3]] [9,7]
[[3,4] , [5,6]] [8,10]
作為
A B
[1,2] [9]
[2,3] [7]
[3,4] [8]
[5,6] [10]
但是當我這樣做時,熊貓不會對資料框執行任何操作。
uj5u.com熱心網友回復:
這可以按預期作業(注意,explode自 pandas 1.3.0 起處理多個列):
df = pd.DataFrame({'A': [[[1, 2], [2, 3]],
[[3, 4], [5, 6]]],
'B': [[9, 7], [8, 10]]})
out = df.explode(['A' ,'B'])
# A B
# 0 [1, 2] 9
# 0 [2, 3] 7
# 1 [3, 4] 8
# 1 [5, 6] 10
僅當您真的想在 B 中保留串列時,才添加:
out['B'] = out['B'].apply(lambda x: [x])
輸出:
A B
0 [1, 2] [9]
0 [2, 3] [7]
1 [3, 4] [8]
1 [5, 6] [10]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412613.html
標籤:
