繁体   English   中英

在熊猫中合并列?

[英]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

如果Nonestring 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM