如果数据框共享单元格值,则如何串联它们

时间:2018-09-03 15:38:32

标签: python pandas dataframe

目前,我有两个数据框。一个填充了几列的列,包括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中的setdb单元格匹配(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)

我的想法是它将连接(而忽略indexDB和一个新的数据库,该数据库的长度为DB,但仅由{{1} } 已。这没有用。我不确定从这里做什么。


作为一个额外的奖励,我真的很希望能够使用半模糊搜索来做到这一点,以防它们的名称拼写错误。

0 个答案:

没有答案