Mon échantillon df a quatre colonnes avec NaN
valeurs. L'objectif est de concaténer toutes les lignes tout en excluant les valeurs NaN
.Combiner plusieurs colonnes dans Pandas à l'exclusion de NaNs
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
Vous voulez accomplir ce qui suit:
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
Code Pseudo:
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)
Je sais que je peux utiliser ",".join()
pour obtenir le résultat exact, mais je ne suis pas sûr comment passer le noms de colonne dans la fonction.
pour votre dernière proposition, il a besoin de convertir Col. à '[ 'keywords_0', 'keywords_1', 'keywords_2' , 'keywords_3'] 'droite? –
@RayhaneMama Oui, c'est vrai. J'ai fait confiance au pseudo code mais j'aurais dû être plus clair. Merci. – ayhan
Merci. Cela a fonctionné avec brio! – cptpython