Python 从数据帧中的文本替换unicode
我有这个数据框:Python 从数据帧中的文本替换unicode,python,pandas,dataframe,unicode,re,Python,Pandas,Dataframe,Unicode,Re,我有这个数据框: >>> df Temp 0 before 1.5° C after 1 before 2° C after 2 before 2° C after 3 before 1.5° C after 我应用此replace方法: newdf = df.replace(r'(?P<quote>\d[.]*[\d]*)(?u:00B0)\s+C', '(?P=quote)'r'C') 我还尝试了
>>> df
Temp
0 before 1.5° C after
1 before 2° C after
2 before 2° C after
3 before 1.5° C after
我应用此replace
方法:
newdf = df.replace(r'(?P<quote>\d[.]*[\d]*)(?u:00B0)\s+C', '(?P=quote)'r'C')
我还尝试了newdf=df.replace(r'°\s+,'')
,但这也不会改变数据帧
其他问题:
df["New"] = df["Temp"].str.replace(r"[^\d.C]", "")
#OR
df["New"] = df["Temp"].str.replace(r"(?<=\d)(°\s*)", "")
print(df)
Temp New
0 1.5° C 1.5C
1 2° C 2C
2 2° C 2C
3 1.5° C 1.5C
- 我不想删除所有unicode字符,只想在后跟零个或多个空格时删除这个字符
- ,但我需要用于零个或更多空格的正则表达式
- 我不能先删除unicode字符,因为
是需要更改的位置的指示器°
r”[^\d.C]“
替换除int
、十进制
和C
Ex:
df["New"] = df["Temp"].str.replace(r"[^\d.C]", "")
#OR
df["New"] = df["Temp"].str.replace(r"(?<=\d)(°\s*)", "")
print(df)
Temp New
0 1.5° C 1.5C
1 2° C 2C
2 2° C 2C
3 1.5° C 1.5C
另一种方式;只需替换所有
非数字
,不包括
df["New"]=df.Temp.str.replace('[^\w\.]','')
谢谢,我的MWE太小了。当我给出的字符串在实际文本的上下文中时,第二种方法有效。我编辑了这个问题,以减少MWE的最小值