#python #dataframe #concat
#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])
выглядит многообещающе, но я не знаю, нужно ли указывать, что мне нужны только общие значения. Какие аргументы я должен поместить в круглые скобки?
Комментарии:
1. Вы не хотите
phone_number
, чтобы в объединенном фрейме данных?2. @MichaelSzczesny Я бы предпочел не иметь его, если бы у меня был выбор
Ответ №1:
Я полагаю, вы ищете pd.merge.
df2=pd.merge(df2,df1,on="code",how="inner").drop(columns="phone_number")
df1 — это данные со name code phone_number
столбцами
, df2 — это данные со code vehicle
столбцами
Ответ №2:
Вы можете использовать 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
Комментарии:
1. По-видимому
df.merge
, это ключ. Я ошибался, ищаdf.concat
.