This question already has answers here:
How to pivot a dataframe
(2个答案)
去年关闭。
我有一个多列数据框,并希望通过基于另一列对它们进行分组来分离特定列中的数据。
这是一个例子:
我希望我的输出是这样的:
我了解我可以轻松使用以下代码:
(2个答案)
去年关闭。
我有一个多列数据框,并希望通过基于另一列对它们进行分组来分离特定列中的数据。
这是一个例子:
ID Name Score
1 John 100
2 Lisa 80
3 David 75
4 Lisa 92
5 John 89
6 Lisa 72
我希望我的输出是这样的:
index John Lisa David
0 100 80 75
1 89 92 NaN
2 NaN 72 NaN
我了解我可以轻松使用以下代码:
df[df['Name'] == 'John]]
并分隔约翰在数据框中的所有分数,但是由于我的数据框非常大,因此我想要一个干净的输出,如我在此处所示。 最佳答案
您可以使用pivot_table
。您可以生成通过Name
并采用cumcount
对数据帧进行分组分组所需的索引:
ix = df.groupby('Name').cumcount()
pd.pivot_table(df,'Score', ix, 'Name')
Name David John Lisa
1 75.0 100.0 80.0
2 NaN 89.0 92.0
3 NaN NaN 72.0