我看到过很多关于这个话题的不同答案。在我的情况下,情况有点不同,我有以下数据框
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 (most recent call last): File "C:/Users/V002697/PycharmProjects/portia/tiaex.py", line 17, in print(df.pivot(index='ticker',values='value', columns= 'field')) File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py", line 3853, in pivot return pivot(self, index=index, columns=columns, values=values) File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 378, in pivot return indexed.unstack(columns) File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\series.py", line 2028, in unstack return unstack(self, level, fill_value) File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 458, in unstack fill_value=fill_value) File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 110, in init self._make_selectors() File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\reshape\reshape.py", line 148, in _make_selectors raise ValueError('Index contains duplicate entries, ' ValueError: Index contains duplicate entries, cannot reshape
我想知道您是否有一些想法?
谢谢
最佳答案
您可以使用pandas.DataFrame.pivot
:
df.pivot(index='A', columns = 'B', values='C')
B OPT1 OPT2 OPT3 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9
A
OPXXX 70 KO KO B 175000 Europ 2019-01-21 2019-05-21 2019-10-21
关于python - 如何 reshape 数据框(列中的不同类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54883677/