首页 > 解决方案 > 使用 Pandas [with key column] 将 CSV 与不同的列组合

问题描述

我正在尝试在 Python 中组合两个 CSV 文件,每个 CSV 文件都有唯一的列,但两个 CSV 文件共享一个公共键列。

我一直在查看 StackOverflow/Google/Pandas 文档,但没有找到我想要的东西。Pandas 文档页面上提供的 merge 和 concat 示例与我试图实现的不同,所以我不确定我所要求的是否可以使用 Pandas。

我已将两个 CSV 文件中的选定列读入单独的数据帧,我现在想做的是根据关键列将两个数据帧组合成一个数据帧。

Example

CSV 1:
Key   Make   Model
501   Audi   A3
502   Audi   A4
503   Audi   A5

CSV 2:
Key   Engine
501   2.0T
502   2.0T
503   2.0T

Combined Expected Result:
Key   Make   Model   Engine
501   Audi   A3      2.0T
502   Audi   A4      2.0T
503   Audi   A5      2.0T

标签: pythonpandascsvdataframeconcat

解决方案


您需要将 csvs 读入 2 个单独的数据框,然后将它们加入“键”列。

import pandas as pd
df1 = pd.read_csv('csv1.csv')
df2 = pd.read_csv('csv2.csv')
df_final = df1.merge(df2, left_on = 'Key', right_on = 'Key')

推荐阅读