我的示例df有四列,其值爲NaN
。目標是連接所有行,同時排除NaN
值。在不包括NaN的大熊貓中組合多列
import pandas as pd
import numpy as np
df = pd.DataFrame({'keywords_0':["a", np.nan, "c"],
'keywords_1':["d", "e", np.nan],
'keywords_2':[np.nan, np.nan, "b"],
'keywords_3':["f", np.nan, "g"]})
keywords_0 keywords_1 keywords_2 keywords_3
0 a d NaN f
1 NaN e NaN NaN
2 c NaN b g
要做到以下幾點:
keywords_0 keywords_1 keywords_2 keywords_3 keywords_all
0 a d NaN f a,d,f
1 NaN e NaN NaN e
2 c NaN b g c,b,g
僞代碼:
cols = [df.keywords_0, df.keywords_1, df.keywords_2, df.keywords_3]
df["keywords_all"] = df["keywords_all"].apply(lambda cols: ",".join(cols), axis=1)
我知道我可以使用",".join()
得到確切的結果,但我不知道該如何打發列名進入函數。
爲了你最後的命題分配回你的專欄
keywords_all
他需要轉換的cols爲'[ 'keywords_0', 'keywords_1', 'keywords_2' ,'keywords_3']'對嗎? –@RayhaneMama是的。我信任僞代碼,但我應該更清楚。謝謝。 – ayhan
謝謝。這工作出色! – cptpython