Python 基于单元格值向数据框添加列

Python 基于单元格值向数据框添加列,python,pandas,dataframe,Python,Pandas,Dataframe,这是我所拥有的: list1_ = [("1","a","a1"),("1","b","b1"),("1","c","c"),("2","a","a2")] df1 = pd.DataFrame(list1_,columns = ["user","col1","col2"]) list2_ = [("1","b","b2"),("1","a","a2"),("2","a","a3"),("1","c","c2")] df2 = pd.DataFrame(list2_,columns = ["us

这是我所拥有的:

list1_ = [("1","a","a1"),("1","b","b1"),("1","c","c"),("2","a","a2")]
df1 = pd.DataFrame(list1_,columns = ["user","col1","col2"])
list2_ = [("1","b","b2"),("1","a","a2"),("2","a","a3"),("1","c","c2")]
df2 = pd.DataFrame(list2_,columns = ["user","col1","col3"])
我试图做的是为用户,将df2中的col1与df1匹配,并在df1中添加col3。。。基本上为相同的单元格值生成df1:user、col1、col2、col3。 最终结果应如下所示:

list3_ = [("1","a","a1","a2"),("1","b","b1","b2"),("1","c","c","c2"), 
("2","a","a2","a3")]
df3 = pd.DataFrame(list3_,columns = ["user","col1","col2","col3"])
请注意:我从csv文件中读取df1,并使用list2创建df2。因此,我有一些数据是list2_uu形式的,而不是list1_uu形式的。因此,只希望使用df1、列表2和/或df2。

使用:

使用:


看来我确实试过了。似乎出现了错误:/what error?这可以更容易地解决-你可以检查,但如果有一些特定的问题,请尝试解释更多…它是有效的:'!!!虽然我需要在一个更大的数据集上检查它,但我想我现在明白了!非常感谢@nixonIt,我确实试过了。似乎出现了错误:/what error?这可以更容易地解决-你可以检查,但如果有一些特定的问题,请尝试解释更多…它是有效的:'!!!虽然我需要在一个更大的数据集上检查它,但我想我现在明白了!谢谢@nixon关于merge的大多数问题,包括这一个,现在都可以作为的复制品来处理了。鼓励所有用户这么做,让我们保持这个标签的整洁:谢谢@coldspeed的评论,但之前没有遇到过。没有一个是这样的。即使我不同意你在某个时候给出的解决方案,我也不认为我曾经否决过你,因为一般来说,你的解决方案都是非常快速和有效的neat@nixon-真的很糟糕。。。所以有人想要我认为你很沮丧选民:这真的很糟糕:好吧@jezrael足够好了,你现在知道这些不是我的:大多数涉及合并的问题,包括这一个,现在都可以被当作是重复的。鼓励所有用户这么做,让我们保持这个标签的整洁:谢谢@coldspeed的评论,但之前没有遇到过。没有一个是这样的。即使我不同意你在某个时候给出的解决方案,我也不认为我曾经否决过你,因为一般来说,你的解决方案都是非常快速和有效的neat@nixon-真的很糟糕。。。所以有人想要我觉得你很沮丧选民:这真的很糟糕:好吧@jezrael足够好了你现在知道那些不是我的了:
df1.merge(df2, on = ['user','col1'])

   user col1 col2 col3
0    1    a   a1   a2
1    1    b   b1   b2
2    1    c    c   c2
3    2    a   a2   a3