连接两个 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])
看起来很有希望,但我不知道具体说明我只想要通用值。我应该在括号中放入什么参数?
我想你正在寻找 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
我有 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])
看起来很有希望,但我不知道具体说明我只想要通用值。我应该在括号中放入什么参数?
我想你正在寻找 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