Python 熊猫重新排序数据

Python 熊猫重新排序数据,python,pandas,dataframe,Python,Pandas,Dataframe,这可能是一个使用pivot的简单方法,但是由于我没有添加数字(每一行都是唯一的),我应该怎么做呢 输入: Col1 Col2 Col3 0 123.0 33.0 ABC 1 345.0 39.0 ABC 2 567.0 100.0 ABC 3 123.0 82.0 PQR 4 345.0 10.0 PQR 5 789.0 38.0 PQR 6 890.0 97.0 XYZ 7 345.0

这可能是一个使用pivot的简单方法,但是由于我没有添加数字(每一行都是唯一的),我应该怎么做呢

输入:

      Col1   Col2 Col3
0    123.0   33.0  ABC
1    345.0   39.0  ABC
2    567.0  100.0  ABC
3    123.0   82.0  PQR
4    345.0   10.0  PQR
5    789.0   38.0  PQR
6    890.0   97.0  XYZ
7    345.0   96.0  XYZ
输出:

      Col1    ABC   PQR   XYZ
0    123.0   33.0  82.0   NaN
1    345.0   39.0  10.0  96.0
2    567.0  100.0   NaN   NaN
3    789.0    NaN  38.0   NaN
4    890.0    NaN   NaN  97.0
我可以得到数据帧格式的输出吗?非常感谢您的关注

您可以使用:

另一个解决方案包括和:


按注释编辑:

需要:

另一个更快的解决方案是聚合
平均值
(默认情况下,数据透视表aggreagate
平均值
),最后转换为
系列


非常感谢。。让我看看第二个。。第一个是我尝试过的,并给了我这个错误:“ValueError:Index包含重复的条目,无法重塑'input\.set\.Index(['Col1','Col3'])['Col2'])。unstack()也给出了ValueError:Index包含重复的条目,无法重塑眼睛,因此为了更好地解释,我添加了另一个带有链接的解决方案。
print (df.pivot(index='Col1', columns='Col3', values='Col2'))
Col3     ABC   PQR   XYZ
Col1                    
123.0   33.0  82.0   NaN
345.0   39.0  10.0  96.0
567.0  100.0   NaN   NaN
789.0    NaN  38.0   NaN
890.0    NaN   NaN  97.0
print (df.set_index(['Col1','Col3'])['Col2'].unstack())
Col3     ABC   PQR   XYZ
Col1                    
123.0   33.0  82.0   NaN
345.0   39.0  10.0  96.0
567.0  100.0   NaN   NaN
789.0    NaN  38.0   NaN
890.0    NaN   NaN  97.0
print (df.pivot_table(index='Col1', columns='Col3', values='Col2'))
Col3     ABC   PQR   XYZ
Col1                    
123.0   33.0  82.0   NaN
345.0   39.0  10.0  96.0
567.0  100.0   NaN   NaN
789.0    NaN  38.0   NaN
890.0    NaN   NaN  97.0
print (df.groupby(['Col1','Col3']).mean().squeeze().unstack())
Col3     ABC   PQR   XYZ
Col1                    
123.0   33.0  82.0   NaN
345.0   39.0  10.0  96.0
567.0  100.0   NaN   NaN
789.0    NaN  38.0   NaN
890.0    NaN   NaN  97.0