【发布时间】:2017-08-02 23:39:22
【问题描述】:
我想将 pandas 数据框的两列不同列的值合并到新数据框的一列中。
pandas df1 =
hapX
pos 0.0
1 721 0.2
2 735 0.5
3 739 1.0
pandas df2 =
hapY
pos 0.1
1 721 0.0
2 735 0.6
3 739 1.5
我想生成一个新的数据框,例如:
df_joined['hapX|Y'] = df1.astype(str).add('|').add(df2.astype(str))
预期输出:
hapX|Y
pos 0.0|0.1
1 721 0.2|0.0
2 735 0.5|0.6
3 739 1.0|1.5
但是,这是输出一堆NaN
hapX hapY
pos NaN NaN
1 721 NaN NaN
2 735 NaN NaN
3 739 NaN NaN
价值是浮动的问题吗(我不这么认为)。我的方法有什么问题?
另外,如果列值在一个数据帧中类似于 hapX1 hapX1 hapX3 而在另一个数据帧中是 hapY1 hapY2 hapY3,是否有办法自动执行该过程?
谢谢,
【问题讨论】:
-
df1.hapX.astype(str) + '|' + df2.pahY.astype(str)只会为您提供一个可以添加到数据框中的新列。 -
实际上这不起作用并抛出
attribute error -
索引都一样吗?
-
是的,
pos索引是相同的。但是,正如您在问题中看到的那样,column索引是不同的。
标签: python pandas dataframe merge nan