【发布时间】:2020-02-21 02:03:51
【问题描述】:
我正在尝试将两个带有“左”的数据框与带有“项目”的条件结合起来
如果 df2 没有“equivalent_item”,那么我想使用 df1“item”本身。如果 df2 "equivalent_item" 为 null(例如 Kiwi),则等效项应该为 null,然后我可以删除该行。
df1:
name item
jack rice
hari banana
mala apples
kin kiwi
Mike salt
fall sugar
yedy pasta
vall fruits
df2:
item equivalent_item
rice basmathi
banana delmonte
apples fuji apple
kiwi
pasta barello
预期输出:
name items equivalent_item
jack rice basmathi
hari banana delmonte
mala apples fuji apple
kin kiwi
Mike salt salt
fall sugar sugar
yedy pasta barello
vall fruits fruits
我必须这样做:
def equivalent_name(name):
elif name == 'rice':
return 'basmathi'
elif name == 'banana':
return 'delmonte'
elif name == 'apples':
return 'fuji apple'
elif name == 'apples':
return 'fuji apple'
elif name == 'pasta':
return 'barello'
else
return name
df1['name'] = df1['name'].apply(equivalent_name)
【问题讨论】:
-
这可以通过一些指标标志来完成。假设您在 df2 中创建了一个值为 1 的任意列。如果您在项目上连接两个表,则该标志将连接两个都可用的键的值。下一步可以从
items中查找任意列并填充值