1
我有以下DataFrame
:合併行,並填寫組內NaN值
X Y Z
0 xxx NaN 333
1 NaN yyy 444
2 xxx NaN 333
3 NaN yyy 444
我想基礎上,Z
column
結合rows
得到如下:
X Y Z
0 xxx yyy 333
1 xxx yyy 444
我有以下DataFrame
:合併行,並填寫組內NaN值
X Y Z
0 xxx NaN 333
1 NaN yyy 444
2 xxx NaN 333
3 NaN yyy 444
我想基礎上,Z
column
結合rows
得到如下:
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)
對於這個特定的例如,你可以這樣做:
df.fillna(method='ffill').fillna(method='bfill').drop_duplicates()
X Y Z
0 xxx yyy 333
1 xxx yyy 444
不確定你是否在尋找更一般的東西?
我覺得你的例子是關閉的。 'Z = 333'的兩行都在'Y'列中有'NaN'。 「Z」欄應該是「[333,333,444,444]」嗎? –