我有一个大小为 (2481430, 2) 的数据框,我想按 B 列进行分组,而不对列代码进行汇总。
我使用了 .pivot,它返回“索引 2025068794 超出了大小为 2024681638 的轴 0 的范围”
codex B
0 D0003 20
1 D0004 21
2 D0003 21
3 D0001 20
4 D0002 20
5 D0005 20
df.pivot(columns = 'B', values = 'codex')
这是预期的结果
20 21
0 D0003 D0004
1 D0001 D0003
2 D0002 NaN
3 D0005 NaN
最佳答案
groupby
+ pd.concat
您可以使用groupby
,然后将pd.Series
对象与标准化索引连接起来:
grouper = df.groupby('B')['codex']
res = pd.concat((pd.Series(vals.values, name=b) for b, vals in grouper), axis=1)
print(res)
20 21
0 D0003 D0004
1 D0001 D0003
2 D0002 NaN
3 D0005 NaN
关于python - 使用 .pivot 时索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54020270/