Python 从另一个数据帧替换字符串
我需要根据来自另一个数据帧的数据替换我的列。 必须从其他数据帧中搜索相应的“名称”,并在df1中包含“更改名称” df1: df2: 输出:Python 从另一个数据帧替换字符串,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我需要根据来自另一个数据帧的数据替换我的列。 必须从其他数据帧中搜索相应的“名称”,并在df1中包含“更改名称” df1: df2: 输出: ID name 1 cat meow 2 jack oooo 3 snake ssss 4 monkey nan ID name new_name 0 1 cat meow 1 2 jack oooo 2 3 snake ssss 对不起,我不得不修
ID name
1 cat meow
2 jack oooo
3 snake ssss
4 monkey nan
ID name new_name
0 1 cat meow
1 2 jack oooo
2 3 snake ssss
对不起,我不得不修改我的问题
我必须像下面这样做:
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']。应用(地图名称)
由于列表很小,我在这里硬编码,但列表可能会增加。有人能告诉我如何使用数据帧实现相同的功能吗?我认为您需要:
d = {k:v for k,v in zip(df1["name"], df1["change_name"])}
df["new_name"] = df["name"].map(d)
df.dropna(subset=["new_name"], inplace=True)
print(df)
输出:
ID name
1 cat meow
2 jack oooo
3 snake ssss
4 monkey nan
ID name new_name
0 1 cat meow
1 2 jack oooo
2 3 snake ssss
我认为你需要:
d = {k:v for k,v in zip(df1["name"], df1["change_name"])}
df["new_name"] = df["name"].map(d)
df.dropna(subset=["new_name"], inplace=True)
print(df)
输出:
ID name
1 cat meow
2 jack oooo
3 snake ssss
4 monkey nan
ID name new_name
0 1 cat meow
1 2 jack oooo
2 3 snake ssss
不需要听写理解,请检查重复。不需要听写理解,请检查重复。使用
merge
和dropna
,即df.merge(df2.dropna(),on=“name”)
。使用merge
和dropna
,即df.merge(df2.dropna(),on=“name”)
。