如何使用groupby合并Panda中的行



我有一个看起来像这样的数据帧:

Major1英语>NaN>西班牙语>
ID 名称Major2Maver3
12 DaveNaN
12 DaveNaN生物学
12 DaveNaN历史
13 NateNaNNaN
13 NateNaN业务NaN

如果您打算使用groupby,您可以执行以下操作:

dataframe = dataframe.melt(['ID', 'Name']).dropna()
dataframe = dataframe.groupby(['ID', 'Name', 'variable'])['value'].sum().unstack('variable')

您可能需要稍微处理一下列名,但这是我想到的使用groupby的可能解决方案。

使用meltpivot

>>> df.melt(['ID', 'Name']).dropna() 
.pivot(['ID', 'Name'], 'variable', 'value') 
.reset_index().rename_axis(columns=None)
ID  Name   Major1    Major2   Major3
0  12  Dave  English   Biology  History
1  13  Nate  Spanish  Business      NaN

最新更新