python - 在具有非唯一值的列上合并 Python 中的两个数据框

标签 python pandas dataframe merge

<分区>

我正在尝试根据“X”列在 Python 中合并两个数据框。

左侧数据框中的 X 列具有非唯一值,右侧数据框中的 X 列具有唯一值。如何将右侧数据框中的值合并到左侧数据框中?

我想将 df2 中的行合并到 df1 中以形成 df3

df1 = pd.DataFrame({'A': ['NA','EU','LA','ME'],
                    'B': [50, 23,21,100],
                    'X': ['IW233', 'IW455', 'IW455', 'IW100']})

df2 = pd.DataFrame({'C': [50, 12, 12, 11, 10, 16],
                    'X': ['IW455', 'IW200', 'IW233', 'IW150', 'IW175', 'IW100'],
                    'D': ['Aug', 'Sep', 'Jan', 'Feb', 'Dec', 'Nov']})

df3:1

最佳答案

您可以使用 merge对于左连接,如果只有 X 连接列 on 参数可以省略:

df = pd.merge(df1, df2, how='left')
print (df)
    A    B      X   C    D
0  NA   50  IW233  12  Jan
1  EU   23  IW455  50  Aug
2  LA   21  IW455  50  Aug
3  ME  100  IW100  16  Nov

如果有多个相同的列名:

df = pd.merge(df1, df2, on='X', how='left')
print (df)
    A    B      X   C    D
0  NA   50  IW233  12  Jan
1  EU   23  IW455  50  Aug
2  LA   21  IW455  50  Aug
3  ME  100  IW100  16  Nov

关于python - 在具有非唯一值的列上合并 Python 中的两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45532699/

相关文章:

python - 使用 python 将图标集添加到现有 Excel 文件

python - Pandas python .describe() 格式化/输出

python - HDF存储异常: cannot find the correct atom type : a basic case

r - 使用相似数据帧的内容来提高更新大数据帧内容的性能

python - 如何返回在 contains 中导致 True 标志的关键字

python - 向条形图添加图像注释

python - 当根类别具有相同的子类别时,如何在 django 中实现类别/子类别?

Python pandas 计算每列中的出现次数

python - 合并行 pandas 数据框

r - 查找行中第二大值的列号和值