Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String_Python 2.7_Pandas_Replace - Fatal编程技术网

Python 熊猫:用另一个字符串替换字符串

Python 熊猫:用另一个字符串替换字符串,python,string,python-2.7,pandas,replace,Python,String,Python 2.7,Pandas,Replace,我有以下数据框 prod_type 0 responsive 1 responsive 2 respon 3 r 4 respon 5 r 6 responsive 我想将respon和r替换为responsive,因此最终的数据帧是 prod_type 0 responsive 1 responsive 2 responsive 3 responsive 4 responsive 5 responsive 6 respo

我有以下数据框

    prod_type
0   responsive
1   responsive
2   respon
3   r
4   respon
5   r
6   responsive
我想将
respon
r
替换为
responsive
,因此最终的数据帧是

    prod_type
0   responsive
1   responsive
2   responsive
3   responsive
4   responsive
5   responsive
6   responsive
我尝试了以下方法,但无效:

df['prod_type'] = df['prod_type'].replace({'respon' : 'responsvie'}, regex=True)
df['prod_type'] = df['prod_type'].replace({'r' : 'responsive'}, regex=True)

您不需要在此处传递
regex=True
,因为这将查找部分匹配,因为您需要精确匹配,只需将参数作为单独的参数传递:

In [7]:
df['prod_type'] = df['prod_type'].replace('respon' ,'responsvie')
df['prod_type'] = df['prod_type'].replace('r', 'responsive')
df

Out[7]:
    prod_type
0  responsive
1  responsive
2  responsvie
3  responsive
4  responsvie
5  responsive
6  responsive

您不需要在此处传递
regex=True
,因为这将查找部分匹配,因为您需要精确匹配,只需将参数作为单独的参数传递:

In [7]:
df['prod_type'] = df['prod_type'].replace('respon' ,'responsvie')
df['prod_type'] = df['prod_type'].replace('r', 'responsive')
df

Out[7]:
    prod_type
0  responsive
1  responsive
2  responsvie
3  responsive
4  responsvie
5  responsive
6  responsive
通过
字典
解决方案:

df['prod_type'] = df['prod_type'].replace({'respon':'responsive', 'r':'responsive'})
print (df)
    prod_type
0  responsive
1  responsive
2  responsive
3  responsive
4  responsive
5  responsive
6  responsive
如果需要将列中的所有值设置为某个
字符串

df['prod_type'] = 'responsive' 
通过
字典
解决方案:

df['prod_type'] = df['prod_type'].replace({'respon':'responsive', 'r':'responsive'})
print (df)
    prod_type
0  responsive
1  responsive
2  responsive
3  responsive
4  responsive
5  responsive
6  responsive
如果需要将列中的所有值设置为某个
字符串

df['prod_type'] = 'responsive' 

如果
df['prod_type']
中的所有项目都相同,则其他解决方案如下:

df['prod_type'] = ['responsive' for item in df['prod_type']]
In[0]: df
Out[0]:
prod_type
0  responsive
1  responsive
2  responsive
3  responsive
4  responsive
5  responsive
6  responsive

如果
df['prod_type']
中的所有项目都相同,则其他解决方案如下:

df['prod_type'] = ['responsive' for item in df['prod_type']]
In[0]: df
Out[0]:
prod_type
0  responsive
1  responsive
2  responsive
3  responsive
4  responsive
5  responsive
6  responsive

或者,您可以将apply函数与lambda语法一起使用

df['prod_type'] = df['prod_type'].apply(lambda x: x.replace('respon', 'responsvie'))

或者,您可以将apply函数与lambda语法一起使用

df['prod_type'] = df['prod_type'].apply(lambda x: x.replace('respon', 'responsvie'))