私のサンプルdfには、NaN
の値を持つ4つの列があります。目標は、NaN
の値を除外してすべての行を連結することです。NaNを除くPandasの複数の列を組み合わせる
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