python - 如何将两个数据帧中的两列合并到新数据帧(pandas)的一列中?

标签 python pandas dataframe merge nan

我想将 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/

相关文章:

python - Pandas 相似度计算中的序数变量处理

python - 如何过滤包含相似模式的行

python - 如何填充 NAN "ignoring"索引?

python - 使用 sklearn.datasets.load_files 导入的数据集标签

python - 如何正确设置神经网络来为灰度图像着色?

python - 如何存储要在类内的函数之间使用的cookie jar?

python - 根据某些条件将 Pandas 数据帧有效地拆分为两个数据帧

python - 是否有用于 python 的通用二进制协议(protocol)编解码器库?

Python 创建数据并将其附加到新的 Excel 工作簿 pandas

python - pandas 中函数的向量化实现