【发布时间】:2020-06-03 06:07:05
【问题描述】:
我需要根据来自另一个数据框的数据替换我的列。 必须从其他数据框中搜索相应的“名称”并在 df1 中包含“change_name”
df1:
ID name
1 cat
2 jack
3 snake
4 monkey
df2:
name change_name
cat meow
jack oooo
snake ssss
monkey
输出:
ID name
1 cat meow
2 jack oooo
3 snake ssss
4 monkey nan
抱歉,我必须修改我的问题。
我必须这样做:
def map_name(name):
elif name == 'cat':
return 'meow'
elif name == 'jack':
return 'oooo'
elif name == 'snake':
return 'ssss'
elif name == 'monkey ':
return None
else
return name
df1['name'] = df1['name'].apply(map_name)
由于列表很小,我在这里进行了硬编码,但列表可能会增加。有人能告诉我如何使用数据框完成相同的功能吗?
【问题讨论】:
-
将
merge与dropna一起使用,即df.merge(df2.dropna(),on="name")。
标签: python python-3.x pandas dataframe