我有一个多列数据框,并希望通过基于另一列对它们进行分组来分离特定列中的数据。
这里是一个例子:
Public Shared Function VerificaEPessoaSingularObrigatorio(idRegisto As Long) As Boolean
Return RepositorioEntidadesRegistadas.ObtemTipoEntidadeApenasSingular(BDContexto, idRegisto)
End Function
我希望输出为:
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
并将John在数据框中获得的所有分数分开,但是由于我的数据框非常大,因此我希望得到一个干净的输出,如我在此处所示。
答案 0 :(得分:1)
您可以使用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