我有一个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
这两个结果中的任何一个都会使我满意。
发布于 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)
发布于 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']
来实现第二个结果。
发布于 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
https://stackoverflow.com/questions/50708959
复制相似问题