gpt4 book ai didi

python - Pandas 爆炸 - 无法从重复的轴重新索引

转载 作者:行者123 更新时间:2023-12-04 14:12:29 26 4
gpt4 key购买 nike

假设我有一个数据框 df :

   C1      C2      C3      C4               C5
0 [A] [1] s1 [123] t1
1 [A] [1] s2 321 t2
2 [A,B] [1,2] s3 [777,111] t3
3 [B] [2] s4 145 t4
4 [B] [2] s5 [990] t5
5 [A,B,B] [1,2,2] s6 [124,125,765] t6
6 [A,A] [1,3] s7 119 t7
我想把一切都炸开,所以我一直在做 df = df.apply(pd.Series.explode)但是,这给了我 ValueError: cannot reindex from a duplicate axis .我已将罪魁祸首追溯到 df 的第 6 行(最后一行) .之前在 C1 里有东西的时候我就明白了与 C2 中的长度不同.但我不明白爆炸最后一行有什么问题。
如果我这样做 pd.DataFrame([[['A','B'],[1,2],'s7',119,'t7']]).apply(pd.Series.explode() ,它工作正常,并按预期给了我以下内容:
   C1      C2      C3      C4         C5
0 A 1 s7 119 t7
1 A 3 s7 119 t7
我无法弄清楚为什么最后一行是整个数据帧的一部分时会导致错误。我检查了索引,它都是唯一的。

最佳答案

随时进行清理并且它有效。

df = pd.DataFrame({'C1': [["A"], ["A"], ["A","B"], ["B"], ["B"], ["A","B","B"], ["A","A"]],
'C2': [[1], [1], [1,2], [2], [2], [1,2,2], [1,3]],
'C3': ['s1', 's2', 's3', 's4', 's5', 's6', 's7'],
'C4': [[123], 321, [777,111], 145, [990], [124,125,765], 119],
'C5': ['t1', 't2', 't3', 't4', 't5', 't6', 't7']})

df.explode("C1").reset_index().drop("index",1).explode("C2").reset_index()\
.drop("index",1).explode("C4").reset_index().drop("index",1)


输出
  C1 C2  C3   C4  C5
0 A 1 s1 123 t1
1 A 1 s2 321 t2
2 A 1 s3 777 t3
3 A 1 s3 111 t3
4 A 2 s3 777 t3
5 A 2 s3 111 t3
6 B 1 s3 777 t3
7 B 1 s3 111 t3
8 B 2 s3 777 t3
9 B 2 s3 111 t3

关于python - Pandas 爆炸 - 无法从重复的轴重新索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63139154/

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