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

Python 如何合并数据帧中的两列,python,pandas,csv,Python,Pandas,Csv,我有一个csv文件,我对它进行了操作,我使用pandas.merge合并了两个不同的文件。但是现在,我有一些列被称为,例如列x和列y。 所以我想合并这两列,得到一列。 知道这两列可以这样表示: Column_x Column_y 2 2.1 3 4.322 4 5 然后获得这两个结果之一: Column 2 3 4.322

我有一个csv文件,我对它进行了操作,我使用
pandas.merge
合并了两个不同的文件。但是现在,我有一些列被称为,例如列x和列y。 所以我想合并这两列,得到一列。 知道这两列可以这样表示:

Column_x     Column_y
       2          2.1 
                    3
   4.322            4
       5
然后获得这两个结果之一:

Column  
     2  
     3    
 4.322 
     5
或:

这两个结果中的任何一个都将满足我的要求

您可以使用:

输出:

   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

这些输出分别为:

0    2.000
1    3.000
2    4.322
3    5.00

如果数据帧中的空白“单元格”已经是
NaN
,您可以继续并省略
。替换('',np.NaN)
您需要:

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\u x']
即可获得第一个结果,
df.ffill(axis=1)['Column\u y']
即可获得第二个结果

一种方法是:

df['Column']= df['Column_x'].replace('', np.NaN).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
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['Column']= df['Column_x'].replace('', np.NaN).fillna(df.Column_y)