合并大熊猫中的列?

时间:2020-10-06 14:01:37

标签: python pandas concatenation

我在熊猫中合并了两列,但是遇到了“无”的问题。

我的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

3 个答案:

答案 0 :(得分:1)

如果replaceNone 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)