首页 > 解决方案 > 将两列合并为第三列给出错误

问题描述

我有一个merger数据框如下:

        Type_x                         Type_y
0          NaN                           val0
1          NaN                           val0
2         val1                            NaN
..         ...                            ...
953        NaN                           val2
954        NaN                            NaN

我正在尝试使用线条将merger['Type'] = merger.stack().values线条相互融合以达到此结果:

        Type_x                         Type_y                           Type
0          NaN                           val0                           val0
1          NaN                           val0                           val0
2         val1                            NaN                           val1
..         ...                            ...                            ...
953        NaN                           val2                           val2
954        NaN                            NaN                            NaN

但是,它不起作用,我收到错误:ValueError: Length of values does not match length of index. 但是,当我print(merger)将它们取出时,这两列的长度似乎相同。此外,当我在 Excel 中加载它们(用 0 替换 NaN)时,它们的长度相同。

有什么想法吗?

标签: pandas

解决方案


正如我理解你的例子我试过这个,它可以帮助你得到你想要的结果,

merger['Type']=merger['Type_x'].copy()
merger['Type']=merger['Type'].fillna(merger['Type_y'])

推荐阅读