gpt4 book ai didi

python - 展开多行

转载 作者:行者123 更新时间:2023-12-04 12:38:31 24 4
gpt4 key购买 nike

我必须在数据框下方:

import pandas as pd

a = pd.DataFrame([{"name": "John",
"item" : "item1||item2||item3",
"itemVal" : "item1Val||item2Val||item3Val"},
{"name" : "Tom",
"item":"item4",
"itemVal" : "item4Val"
}
])

数据框是这样的:

   name                 item                       itemVal
John item1||item2||item3 item1Val||item2Val||item3Val
Tom item4 item4Val

我想把这一行分解成多行,这样就变成了这样(注意item和它的itemVal需要匹配)。

   name                 item                       itemVal
John item1 item1Val
John item2 item2Val
John item3 item3Val
Tom item4 item4Val

我在这里查看了其他答案:

Split (explode) pandas dataframe string entry to separate rows

pandas: How do I split text in a column into multiple rows?

但只适用于一列。我如何让它在多列上工作?我正在使用 Pandas 1.0.1 和 Python 3.8

最佳答案

a = a.apply(lambda x: [v.split('||') for v in x]).apply(pd.Series.explode)
print(a)

打印:

   name   item   itemVal
0 John item1 item1Val
0 John item2 item2Val
0 John item3 item3Val
1 Tom item4 item4Val

编辑:如果你只想拆分选定的列,你可以这样做:

exploded = a[['item', 'itemVal']].apply(lambda x: [v.split('||') for v in x]).apply(pd.Series.explode)
print( pd.concat([a['name'], exploded], axis=1) )

关于python - 展开多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61844022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com