繁体   English   中英

连接两个 DataFrame 但仅用于 Python 中的公共值

[英]Concatenating two DataFrames but only for common values in Python

我有 2 个这样的数据框:

name    code phone_number 
Joe     BX13    03453
Bill    C308    321356
Donald  H314    34532
Mike    J4D6    2134

code vehicle
C308 Mercedes
H314 BMW

我想将它们连接起来,但仅限于特定列中的公共值,因此它看起来像这样:

name    code vehicle
Bill    C308 Mercedes
Donald  H314   BMW

df3=pd.concat([df1, df2])

看起来很有希望,但我不知道要指定我只想要共同的价值观。 我应该在括号中输入什么 arguments?

我想您正在寻找 pd.merge。

df2=pd.merge(df2,df1,on="code",how="inner").drop(columns="phone_number")

df1 是name code phone_number列的数据 df2 是code vehicle列的数据

你可以使用df.merge

设置您的数据

import pandas as pd
import io
t = '''
name,code,phone_number
Joe,BX13,3453
Bill,C308,321356
Donald,H314,34532
Mike,J4D6,2134'''
df1 = pd.read_csv(io.StringIO(t))

t = '''
code,vehicle
C308,Mercedes
H314,BMW'''
df2 = pd.read_csv(io.StringIO(t))

现在您可以将两个数据框与选定的列合并

df1[['name','code']].merge(df2, on='code', how='inner')

出去:

     name  code   vehicle
0    Bill  C308  Mercedes
1  Donald  H314       BMW

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM