我在熊猫中合并了两列,但是遇到了“无”的问题。
我的df:
id name1 name2
1 sam None
2 None slic
3 brm dres
我正在使用串联方法来组合name1和name2
df['New'] df['name1] + df['name2']
但是当我使用它的时候,所有的值都被忽略了……我不知道为什么。这是我的输出结果
id name1 name2 New
3 brm dres brmdres
但是我需要这个:
id name1 name2 New
1 sam None sam
2 None slic slic
3 brm dres brmdres
答案 0 :(得分:1)
如果replace
是None
string
,请尝试使用type
进行过滤,否则请fillna('')
df.filter(like='name').replace('None','').sum(1)
0 sam
1 slic
2 brmdres
dtype: object
答案 1 :(得分:1)
在您只需要对数据框中的特定列求和的情况下,这是一个完整的答案:
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”。
答案 2 :(得分:0)
我喜欢的解决方案:
df['new'] = df.fillna('').sum(axis=1)