Python 合并行并填充组内的NaN值
我有以下Python 合并行并填充组内的NaN值,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: X Y Z 0 xxx NaN 333 1 NaN yyy 444 2 xxx NaN 333 3 NaN yyy 444 我试图根据Z列组合行,以获得以下内容: X Y Z 0 xxx yyy 333 1 xxx yyy 444 对于此特定示例,您可以执行以下操作: df.fillna(method='ffill').fillna(method='bfill').drop_du
数据帧
:
X Y Z
0 xxx NaN 333
1 NaN yyy 444
2 xxx NaN 333
3 NaN yyy 444
我试图根据Z
列
组合行
,以获得以下内容:
X Y Z
0 xxx yyy 333
1 xxx yyy 444
对于此特定示例,您可以执行以下操作:
df.fillna(method='ffill').fillna(method='bfill').drop_duplicates()
X Y Z
0 xxx yyy 333
1 xxx yyy 444
不确定您是否在寻找更通用的产品?您应该这样做
NaN
值,并返回第一行def flatten(g):
return g.fillna(method='bfill').iloc[0]
df.groupby('Z').apply(flatten).reset_index(drop=True)
我认为你的例子是错误的。
Z=333的两行在Y
列中都有NaN
。Z
列是否应为[333333444444444]
?