python - 使用 .pivot 时索引超出范围

标签 python python-3.x pandas indexoutofboundsexception

我有一个大小为 (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/

相关文章:

Python Pandas NLTK 带有 Groupby 的数据框列中标记化单词的频率分布

python - 增加 matplotlib 中图例线的线宽

python - Dask:一个worker在多个节点上运行的作业,仅在一个节点上运行

python - 如何使用 pandas 现有列之一中的列表创建新列,并从另一列的列表中分配值?

python-3.x - 导入Jupyter笔记本中另一个目录中的py文件

python - 如何在 Pandas 中垂直连接多列

python - 从数据框 Pandas 创建多索引

python - 使用字符串变量 **kwargs 作为命名参数

python - 是否可以分配一个变量以在函数中使用,但它不应该是全局的

python - 基于多列分箱(分类值)的最佳方式