我想将 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
值是 float 的有问题吗(我不这么认为)。我的方法有什么问题吗?
此外,如果一个数据框中的列值类似于 hapX1 hapX1 hapX3
,而另一个数据框中的 hapY1 hapY2 hapY3
,是否有办法自动执行该过程?
谢谢
最佳答案
您可以合并两个数据帧,然后连接 hapX 和 hapY。 假设您的第一个列名称是 no。
df_joined = df1.merge(df2, on = 'no')
df_joined['hapX|Y'] = (df_joined['hapX'].astype(str))+'|'+(df_joined['hapY'].astype(str))
df_joined.drop(['hapX', 'hapY'], axis = 1)
这给你
no hapX|Y
0 pos 0.0|0.1
1 721 0.2|0.0
2 735 0.5|0.6
3 739 1.0|1.5
关于python - 如何将两个数据帧中的两列合并到新数据帧(pandas)的一列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42755442/