ids = [1,1,1]
value1 = ['c', np.nan, np.nan]
value2 = [np.nan, 'd', 'a']
value3 = [np.nan, np.nan, np.nan]
value4 = ['these', 'dont', 'matter']
df = pd.DataFrame({'id':ids, 'value1':value1, 'value2':value2, 'value3':value3,
'value4':value4})
id value1 value2 value3 value4
0 1 c NaN NaN these
1 1 NaN d NaN dont
2 1 NaN a NaN matter
我想像这样根据 id 将这 3 行合并为一行
id value1 value2 value3
0 1 c d NaN
对于这种情况,如果两行在其中一列中具有不同的值并不重要,我将采用任一值。(假设第一个,例如 value2 的示例(
如果任何行中没有列的值,我希望它是 np.nan
谢谢
尝试使用这个:
df.groupby(‘ids’).first()
如果您希望采用最后一个值,则可以使用:
df.groupby(‘ids’).last()