我有以下DataFrame
:
X Y Z
0 xxx NaN 333
1 NaN yyy 444
2 xxx NaN 333
3 NaN yyy 444
我正在尝试根据rows
Z
合并column
以获得以下内容:
X Y Z
0 xxx yyy 333
1 xxx yyy 444
答案 0 :(得分:1)
对于这个特定的例子,你可以这样做:
df.fillna(method='ffill').fillna(method='bfill').drop_duplicates()
X Y Z
0 xxx yyy 333
1 xxx yyy 444
不确定您是否正在寻找更通用的东西?
答案 1 :(得分:1)
你应该
NaN
值,然后返回第一行。例如,
def flatten(g):
return g.fillna(method='bfill').iloc[0]
df.groupby('Z').apply(flatten).reset_index(drop=True)