gpt4 book ai didi

python - Pandas 爆炸多列

转载 作者:行者123 更新时间:2023-12-03 15:47:01 25 4
gpt4 key购买 nike

我有多列的 DF。
其中两列是相同 len 的列表。( col2 和 col3 是列表。列表的 len 是相同的)。
我的目标是在它自己的行上列出每个元素。
我可以使用 df.explode() .但它只接受一列。但是,我希望两列成对地“爆炸”。如果我这样做 df.explode('col2')然后 df.explode('col3') , 结果是 9 行而不是 3 行。
原始DF

col0      col1        col2        col3
1 aa [1,2,3] [1.1,2.2,3.3]
2 bb [4,5,6] [4.4,5.5,6.6]
3 cc [7,8,9] [7.7,8.8,9.9]
3 cc [7,8,9] [7.7,8.8,9.9]
结束数据帧
id      col1        col2        col3
1 aa 1 1.1
1 aa 2 2.2
1 aa 3 3.3
2 bb 4 4.4
2 bb 5 5.5
2 bb 6 6.6
3 cc ... ...
更新
该列都没有唯一值,因此不能用作索引。

最佳答案

您可以设置 col1作为索引并申请 pd.Series.explode 跨列:

df.set_index('col1').apply(pd.Series.explode).reset_index()
或者:
df.apply(pd.Series.explode)


col1 col2 col3
0 aa 1 1.1
1 aa 2 2.2
2 aa 3 3.3
3 bb 4 4.4
4 bb 5 5.5
5 bb 6 6.6
6 cc 7 7.7
7 cc 8 8.8
8 cc 9 9.9
9 cc 7 7.7
10 cc 8 8.8
11 cc 9 9.9

关于python - Pandas 爆炸多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62801562/

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