我正在嘗試連接 Pandas DataFrame 列,用逗號替換“NaN”值。df = pd.DataFrame({'col1' : ["1","2","3","4","5",np.nan], 'col2' : ["p1","p2","p1",np.nan,"p2",np.nan], 'col3' : ["A","B","C","D","E","F"]})df col1 col2 col30 1 p1 A1 2 p2 B2 3 p1 C3 4 NaN D4 5 p2 E5 NaN NaN F我需要一個輸出:- col1 col2 col3 col40 1 p1 A 1, p1, A1 2 p2 B 2, p2, B2 3 p1 C 3, p1, C3 4 NaN D 4, , D4 5 p2 E 5, p2, E5 NaN NaN F , , F基本上我需要在col4.我在這里先向您的幫助表示感謝
1 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
用 替換缺失值DataFrame.fillna,然后join按行使用:
df['col4'] = df.astype(str).fillna('').apply(', '.join, axis=1)
或添加,并用于加入,sum最后刪除最后,:Series.str.rstrip
df['col4'] = df.astype(str).fillna('').add(', ').sum(axis=1).str.rstrip(', ')
或者分別處理每一列:
df['col4'] = (df['col1'].astype(str).fillna('') + ', ' +
df['col2'].astype(str).fillna('') + ', ' +
df['col3'].astype(str))
print (df)
col1 col2 col3 col4
0 1 p1 A 1, p1, A
1 2 p2 B 2, p2, B
2 3 p1 C 3, p1, C
3 4 NaN D 4, , D
4 5 p2 E 5, p2, E
5 NaN NaN F , , F
添加回答
舉報
0/150
提交
取消