导入并合并2个csv并与公共列ID对齐

时间:2019-09-07 13:18:39

标签: python pandas csv jupyter-notebook

我有2个数据集,其中一个具有不同的行和列数,但是具有相同的ID。

问题:我希望将两个数据框组合成一个新的数据框,该数据框具有相同的df1行数,但添加了额外的Age列,age列中的值将根据ID进行填充

示例:

data = [[1,'Alex',10],[2,'Bob',12],[3,'Clarke',13],[1,'Alex',13],[4,'Jim',13], [3,'Clarke',13]]
df1 = pd.DataFrame(data,columns=['id', 'Name','Score'],dtype=int)

data2 = [[1, 20],[2, 22],[3, 19],[4, 21]]
df2 = pd.DataFrame(data2,columns=['id','Age'],dtype=int)

出局:

enter image description here

不知道从哪里开始

python的新手,请帮忙!

预期输出:

   id   Name    Score   Age
0   1   Alex    10      20    
1   2   Bob     12      22
2   3   Clarke  13      19
3   1   Alex    13      20
4   4   Jim     13      21
5   3   Clarke  13      19

3 个答案:

答案 0 :(得分:0)

尝试这个:

>>> pd.merge(df1, df2, on="id")
   id    Name  Score  Age
0   1    Alex     10   20
1   1    Alex     13   20
2   2     Bob     12   22
3   3  Clarke     13   19
4   3  Clarke     13   19
5   4     Jim     13   21

答案 1 :(得分:0)

尝试“合并”。

您应该可以通过以下方式加入两个csv:

combined_data = df1.merge(df2, on="id")

merge函数合并表,并根据在什么条件下合并它们而确定“ on”参数。

答案 2 :(得分:0)

如果两个数据帧具有相同的至少一列,则可以使用合并功能合并两个等长的数据帧。您的情况就是ID。因此,我们将其合并到“ ID”上,如下所示:

data = [[1,'Alex',10],[2,'Bob',12],[3,'Clarke',13],[1,'Alex',13],[4,'Jim',13], [3,'Clarke',13]]
df1 = pd.DataFrame(data,columns=['id', 'Name','Score'],dtype=int)

data2 = [[1, 20],[2, 22],[3, 19],[4, 21]]
df2 = pd.DataFrame(data2,columns=['id','Age'],dtype=int)

merged_df = df1.merge(df2, on="id")