добавление данных в существующий фрейм данных без создания нового объекта в pandas - PullRequest
0 голосов
/ 06 августа 2020

у меня есть 2 фрейма данных df1 имеет 3 столбца cust_id, имя, фамилию df2 имеет 1 столбец cust_id

для каждой строки в df2, я хочу извлечь данные из df1 и добавить в df3, df3 имеет 3 столбца cust_id, имя, фамилия

я пробовал это

for i,r in df2.iterrows():
    data = df1[df1[cust_id]==r]
    pandas.concat(data,df3)

выше выдает ошибку: первый аргумент должен быть повторяемым из pandas объектов, вы передал объект типа "DataFrame"

я пробовал другое, как

for i,r in df2.iterrows():
     data = df1[df1[cust_id]==r]
     df3.append(data)

этот код создает новый фрейм данных, отличный от df3

как этого добиться без создания нового объекта?

1 Ответ

1 голос
/ 06 августа 2020

Ошибка не может быть чище: как вы можете видеть в документах, pd.concat получает повторяемый и другие дополнительные параметры, но вы передаете фрейм данных (data) в качестве первого параметра и другой фрейм данных (df3) в качестве другого параметра вместо итеративного с фреймами данных для объединения, поэтому вам следует изменить pandas.concat(data,df3) на pandas.concat([data,df3]). И в качестве предложения, чтобы избежать использования iterrows, вы можете попробовать pd.Series.isin:

pd.concat([df1[df1['cust_id'].isin(df2['cust_id'])],df3])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...