В настоящее время у меня есть два фрейма данных. Один с несколькими заполненными столбцами, включая Names
, и кучей пустых столбцов. В другом фрейме данных все пустые столбцы первого заполнены. Я пытаюсь заполнить пустые столбцы первого фрейма данных данными во втором фрейме данных, только если фреймы данных имеют общее значение ячейки.
Пример:
DB:
Amount Foil? Name Set ....
3 nan purify the grave innistrad
2 nan slayer of the wicked innistrad
1 nan doomed traveler innistrad
1 nan fiend hunter innistrad
DF:
eur name rarity tix usd set_name ....
0.21 Ballyrush Banneret common 0.02 0.17 Morningtide
0.34 Battletide Alchemist rare 0.01 0.88 Morningtide
0.05 Burrenton Bombardier common 0.01 0.03 Morningtide
0.03 Burrenton Shield-Bearer common 0.01 0.03 Morningtide
0.21 Cenn's Tactician uncommon 0.01 0.22 Morningtide
0.05 Changeling Sentinel common 0.01 0.08 Morningtide
0.04 Coordinated Barrage common 0.01 0.11 Morningtide
0.06 Daily Regimen uncommon 0.01 0.14 Morningtide
Теперь где-то в DF
должна быть строка с совпадающими ячейками name
и set
, как в db
(в db
есть только те карты, которые есть у меня, а в df
есть все карты из всех наборов, которые у меня есть). Если это так, я хочу иметь возможность обновить строку в DB
со всей информацией в DF
. Как мне это сделать?
Желаемое конечное поведение
DB:
Amount Foil? Name Set usd ....
3 nan purify the grave innistrad .5
2 nan slayer of the wicked innistrad .7
1 nan doomed traveler innistrad .9
1 nan fiend hunter innistrad ...
То, что я пробовал до сих пор,
final_db = pd.concat([db, df.loc[df['name'].isin(db['Name'])]],ignore_index=True,sort=True)
где я думал, что он объединит (игнорируя index
) DB
и новую базу данных с той же длиной DB
, но состоящую только из строк, которые есть DF
. Это не сработало. Я не знаю, что делать дальше.
В качестве дополнительного бонуса я действительно хотел бы иметь возможность сделать это с полунечетким поиском на случай, если в имени будут опечатки.