首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何合并数据帧中的两列

如何合并数据帧中的两列
EN

Stack Overflow用户
提问于 2018-06-06 05:08:47
回答 4查看 54关注 0票数 2

我有一个csv文件,我对它进行了处理,我使用pandas.merge合并了两个不同的文件。但是现在,我有一些列被称为column_x和column_y,所以我想合并这两列以获得一列。通过知道这两列可以这样表示:

Column_x     Column_y
       2          2.1 
                    3
   4.322            4
       5

然后获得这两个结果中的任意一个:

Column  
     2  
     3    
 4.322 
     5

或者:

Column
     2.1 
     3
     4
     5

这两个结果中的任何一个都会使我满意。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-06 05:14:26

df.replace('', np.nan).Column_x.fillna(df.Column_y)

或者

df.replace('', np.nan).Column_y.fillna(df.Column_x)

这些输出分别是:

0    2.000
1    3.000
2    4.322
3    5.00

0    2.1
1    3.0
2    4.0
3    5.0

如果数据帧中的空白“单元格”已经是NaN,则可以继续并省略.replace('', np.nan)

票数 2
EN

Stack Overflow用户

发布于 2018-06-06 05:14:51

您需要:

df.bfill(axis=1)

    Column_x    Column_y
0   2.100   2.1
1   3.000   NaN
2   4.322   4.0
3   5.000   NaN

或者

df.ffill(axis=1)

   Column_x Column_y
0   NaN     2.1
1   3.000   3.0
2   4.322   4.0
3   5.000   5.0

您可以简单地使用df.ffill(axis=1)['Column_x']来实现第一个结果,使用df.ffill(axis=1)['Column_y']来实现第二个结果。

票数 3
EN

Stack Overflow用户

发布于 2018-06-06 05:13:15

您可以使用combine_first

df['Column'] = df['Column_x'].combine_first(df['Column_y'])

输出:

   Column_x  Column_y  Column
0     2.000       2.1   2.000
1       NaN       3.0   3.000
2     4.322       4.0   4.322
3     5.000       NaN   5.000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50708959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档