Python 熊猫字符串替换类型错误-使用熊猫df列替换单词
我使用的是Python 3.7,有一个大数据框,其中包含一列地址,如下所示:Python 熊猫字符串替换类型错误-使用熊猫df列替换单词,python,pandas,dataframe,replace,Python,Pandas,Dataframe,Replace,我使用的是Python 3.7,有一个大数据框,其中包含一列地址,如下所示: c = ['420 rodeo drive', '22 alaska avenue', '919 franklin boulevard', '39 emblem alley', '67 fair way'] df1 = pd.DataFrame(c, columns = ["address"]) 还有一个地址缩写及其usps版本的数据帧。例如: x = ['avenue', 'drive', 'b
c = ['420 rodeo drive', '22 alaska avenue', '919 franklin boulevard', '39 emblem alley', '67 fair way']
df1 = pd.DataFrame(c, columns = ["address"])
还有一个地址缩写及其usps版本的数据帧。例如:
x = ['avenue', 'drive', 'boulevard', 'alley', 'way']
y = ['aly', 'dr', 'blvd', 'ave', 'way']
df2 = pd.DataFrame(list(zip(x,y)), columns = ['common_abbrev', 'usps_abbrev'], dtype = "str")
我想做的事情如下:
df1['address']
查找df2['common\u abbrev']
中出现的单词,并替换为df2['usps\u abbrev']
df1
df.str.replace()
的标准策略:
df1["address"] = df1["address"].str.replace(df2["common_abbrev"], df2["usps_abbrev"])
但是,我得到以下错误:
`TypeError: repl must be a string or callable`.
我的问题是:
df2
的dtype
,为什么我会收到错误
address
0 420 rodeo dr
1 22 alaska ave
2 919 franklin blvd
3 39 emblem aly
4 67 fair way
感谢您的帮助。首先使用创建一个
dict
。然后使用:
d=dict(zip(x,y))
可能是better@MustafaAyd是的,更新了我的答案。谢谢你的建议。@MayankPorwal谢谢你的建议,这是清晰直观的。太好了。请不要忘记投票并接受答案。@MayankPorwal还有一个问题:dict
是如何将我的数据类型转换成字符串的?
In [703]: x = ['avenue', 'drive', 'boulevard', 'alley', 'way']
...: y = ['aly', 'dr', 'blvd', 'ave', 'way']
In [686]: d = dict(zip(x, y))
In [691]: df1.address = df1.address.replace(d, regex=True)
In [692]: df1
Out[692]:
address
0 420 rodeo dr
1 22 alaska aly
2 919 franklin blvd
3 39 emblem ave
4 67 fair way