Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从另一个数据帧替换字符串_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 从另一个数据帧替换字符串

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 对不起,我不得不修

我需要根据来自另一个数据帧的数据替换我的列。 必须从其他数据帧中搜索相应的“名称”,并在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
对不起,我不得不修改我的问题

我必须像下面这样做:

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”)