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
谢谢
答案 0 :(得分:0)
尝试使用此:
df.groupby(‘ids’).first()
如果您希望取最后一个值,可以使用:
df.groupby(‘ids’).last()