我有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)
出局:
不知道从哪里开始
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
答案 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")