连接 Pandas DataFrame 中的列值,用逗号替换“NaN”值

我正在尝试连接 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  col3

0    1    p1    A

1    2    p2    B

2    3    p1    C

3    4    NaN   D

4    5    p2    E

5    NaN  NaN   F


我需要一个输出:-


   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

基本上我需要在col4.


我在这里先向您的帮助表示感谢


慕容708150
浏览 95回答 1
1回答

蓝山帝景

用 替换缺失值DataFrame.fillna,然后join按行使用:df['col4'] = df.astype(str).fillna('').apply(', '.join, axis=1)或添加,并用于加入,sum最后删除最后,:Series.str.rstripdf['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      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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python