【发布时间】:2019-07-19 21:19:21
【问题描述】:
我已经看到了很多关于这个话题的不同答案。在我的情况下,情况有点不同,我有以下数据框
A B C
0 OPXXX OPT1 70
1 OPXXX OPT2 KO
2 OPXXX OPT3 KO
3 OPXXX OPT4 B
4 OPXXX OPT5 175000
5 OPXXX OPT6 Europ
6 OPXXX OPT7 2019-01-21
7 OPXXX OPT8 2019-05-21
8 OPXXX OPT9 2019-10-21
我想要这样,但问题是 pivot.table 由于聚合功能而无法正常工作:
A OPT1 OPT2 OPT3 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPXXX 70 KO KO B 175000 Europe 2019-01-21 2019-10-21 2019-10-21
当我这样做时:df.pivot(index='A',values='C', columns='B')
我有以下错误
Traceback(最近一次调用最后一次):文件 “C:/Users/V002697/PycharmProjects/portia/tiaex.py”,第 17 行,在 print(df.pivot(index='ticker',values='value', columns='field')) 文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py", 第 3853 行,在枢轴上 返回枢轴(自我,索引=索引,列=列,值=值)文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", 第 378 行,在枢轴上 返回 indexed.unstack(columns) 文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", 第 2028 行,在 unstack 中 返回 unstack(self, level, fill_value) 文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", 第 458 行,在 unstack 中 fill_value=fill_value) 文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", 第 110 行,在 init 中 self._make_selectors() 文件 "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", 第 148 行,在 _make_selectors raise ValueError('Index contains duplicate entries, ' ValueError: Index contains duplicate entries, cannot reshape
我想知道你有什么想法吗?
谢谢
【问题讨论】:
-
错误是说你在
'B'中有重复的项目,因此它不能被做成索引。 -
在“A”列中,我的示例中有重复项,“B”没有任何重复项
-
您提供的示例工作得很好。你能检查
len(df.B) - df.B.nunique()是否为0吗? -
你太棒了,谢谢我不得不为同一列计时
标签: python pandas pivot pivot-table