Я пытаюсь слиться с пандами данных, хотя то, что я хочу, на самом деле не может быть слиянием.
У меня совпадают два столбца в двух кадрах, один столбец имеет уникальные значения, которые можно использовать для объединения. другой столбец имеет одно пустое поле и одно заполненное.
Я хочу перезаписать поля emtpy при сопоставлении с уникальными полями, но оставить только тот столбец, который перезаписан, я не хочу, чтобы остальные столбцы были из второго DataFrame.
надеюсь, что ниже объяснит немного дальше
>>> animals = [{"animal" : "dog", "name" : "freddy", "food" : ""},{"animal" : "cat", "name" : "dexter", "food" : ""},{"animal" : "dog", "name" : "lou lou", "food" : ""}]
>>> foods = [{"name" : "freddy", "food" : "dog mix", "brand" : "doggys dog"},{"name" : "dexter", "food" : "fussy cat mix", "brand" : "fish fishy"},{"name" : "lou lou", "food" : "bones", "brand" : "i was a cow"}]
>>> a_pd = pd.DataFrame(animals)
>>> a_pd
animal food name
0 dog freddy
1 cat dexter
2 dog lou lou
>>> f_pd = pd.DataFrame(foods)
>>> f_pd
brand food name
0 doggys dog dog mix freddy
1 fish fishy fussy cat mix dexter
2 i was a cow bones lou lou
>>>
>>>
>>> animal_data = a_pd.merge(f_pd, on='name', how='left')
>>> animal_data
animal food_x name brand food_y
0 dog freddy doggys dog dog mix
1 cat dexter fish fishy fussy cat mix
2 dog lou lou i was a cow bones
>>>
У меня просто должна быть еда, и мне не нужен бренд (также обратите внимание, что это примерные данные, а в живых данных гораздо больше столбцов
желаемых результатов
>>> animal_data
animal name food
0 dog freddy dog mix
1 cat dexter fussy cat mix
2 dog lou lou bones