为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容708150 2022-07-26 16:03:08
我正在尝试连接 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


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号