[英]Merging columns in pandas?
我正在合并熊猫中的两列,但遇到“无”问题。
我的 df:
id name1 name2
1 sam None
2 None slic
3 brm dres
我正在使用连接方法来组合 name1 和 name2
df['New'] df['name1] + df['name2']
但是当我使用它时,所有带有 None 的值都被忽略了......我不知道为什么。 这是我的输出最终看起来
id name1 name2 New
3 brm dres brmdres
但我需要这个:
id name1 name2 New
1 sam None sam
2 None slic slic
3 brm dres brmdres
如果None
是string
type
,请尝试使用replace
过滤器,如果不是,请执行fillna('')
df.filter(like='name').replace('None','').sum(1)
0 sam
1 slic
2 brmdres
dtype: object
在您只需要对数据框中的特定列求和的情况下,这是一个完整的答案:
df = pd.DataFrame({'name1': ['sam', None, 'brm'],
'name2': [None, 'slic', 'dres'],
'name3': ['sam2', 'slic2', 'dres2']})
df['new'] = df['name1'].fillna('') + df['name2'].fillna('')
只是为了解释发生了什么:fillna('') 正在用列的副本中的空字符串 '' 替换 None 。 这意味着您实际上是将 'sam' 添加到空字符串 '' 中,它再次为您提供了 'sam'。
我喜欢的解决方案:
df['new'] = df.fillna('').sum(axis=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.