Python 如何合并数据帧中的两列
我有一个csv文件,我对它进行了操作,我使用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
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)