我有一个列,其度数与度数符号有关。
42.9377º
42.9368º
42.9359º
42.9259º
42.9341º
数字0应该替换度数符号
我尝试使用regex或str.replace但我无法弄清楚确切的unicode字符。
源xls将其设为º
错误将其显示为obelus ÷
打印数据框显示为?
度数符号的确切位置可能会有所不同,具体取决于小数的四舍五入,因此我无法使用精确的字符串位置替换。
答案 0 :(得分:2)
使用str.replace
:
df['a'] = df['a'].str.replace('º', '0')
print (df)
a
0 42.93770
1 42.93680
2 42.93590
3 42.92590
4 42.93410
#check hex format of char
print ("{:02x}".format(ord('º')))
ba
df['a'] = df['a'].str.replace(u'\xba', '0')
print (df)
a
0 42.93770
1 42.93680
2 42.93590
3 42.92590
4 42.93410
df['a'] = df['a'].str.extract('(\d+\.\d+)', expand=False) + '0'
print (df)
a
0 42.93770
1 42.93680
2 42.93590
3 42.92590
4 42.93410
如果所有最后的值都是º
,则可以使用indexing with str:
df['a'] = df['a'].str[:-1] + '0'
print (df)
a
0 42.93770
1 42.93680
2 42.93590
3 42.92590
4 42.93410
答案 1 :(得分:1)
如果您知道它总是最后一个字符,您可以删除该字符并附加“0”。
s = "42.9259º"
s = s[:-1]+"0"
print(s) # 42.92590