У меня есть dataframe A
, в котором есть такие столбцы, как "id, Title, Author, Publish Date, Copies Sold"
, и он содержит список всех книг, но для столбца проданных копий для каждой книги установлено значение 0.
Затем кадры данных B, C, D, E и т. д. имеют столбцы "id, Copies Sold"
с истинной стоимостью проданных копий, но в каждом из них они есть только для подмножества книг.
Я хотел бы заполнить dataframe A
«проданными копиями» из каждого из dataframes B,C,D,E
, чтобы dataframe A
все данные о проданных копиях были сведены в одну таблицу.
Однако в каждом задании от B, C, D, E до A, которое я пытаюсь выполнить, поле проданных копий A отображается как NaN.
Как правильно выполнить это задание, когда в поле «Проданные копии» в A записывается значение поля проданных копий в B для каждого идентификатора в B, который соответствует идентификатору в A?
Вы можете объединить B, C, D, E, а затем объединить с A. См. Ниже. Если B, C, D, E включают другие значения, кроме тех, у которых «копии проданы» не как nan, вы можете отфильтровать их (в этом случае дайте мне знать).
A.merge(pd.concat([B,C,D,E]), on='id')
Из этого результата просто выберите нужные столбцы, чтобы получить окончательный желаемый результат.
Попробуйте это, это обновление ответа @IoaTzimas
A = A.merge(pd.concat([B,C,D,E]), on='id', how='left')
B, C, D, E имеют другие столбцы, поэтому я бы сделал «A.merge(pd.concat([B,C,D,E])["copies_sold"], on='id')"