【发布时间】:2020-08-09 12:51:18
【问题描述】:
我有两个 df 有两个相似的列但名称不同,我想通过相似的列连接它们
那是我的 df
data={"col1":["A","B","D","f"],
"col2":[4,2,4,6],
"col3":[7,6,9,11],
"col4":[14,11,22,8],
"multi":[1.4,2.5,1.6,2.2]}
df1=pd.DataFrame.from_dict(data)
data2={"col5":["A","B","D","f"],
"col6":[345,55,44,16],
"col7":[4,7,4,6],
"col8":[1,5,3,9],
"multi_2":[2,2,4,9]}
df2=pd.DataFrame.from_dict(data2)
我想按列连接它们 ["col1","col5"]
它需要看起来像这样,但它也可以与“col5”一起使用
data3={"col1":["A","B","D","f"],
"col2":[4,2,4,6],
"col3":[7,6,9,11],
"col4":[14,11,22,8],
"multi":[1.4,2.5,1.6,2.2],
"col6":[345,55,44,16],
"col7":[4,7,4,6],
"col8":[1,5,3,9],
"multi_2":[2,2,4,9]}
df3=pd.DataFrame.from_dict(data3)
df3
【问题讨论】:
-
df1.merge(df2, left_on=['col1'], right_on=['col5']) -
谢谢我试试这个,但我写的是 left_on='col1' 而不是 left_on=['col1'] 谢谢 :)
-
是的..它可以是标签或列表,或类数组
-
@matan 当你作为字符串给出时应该仍然有效。
-
如果 df1 还有一行,我如何合并它们而不丢失不在 df2 中的行?
标签: python pandas dataframe merge concat