gpt4 book ai didi

python - 如何替换pandas中字符串中的非数字或小数

转载 作者:行者123 更新时间:2023-11-30 22:34:40 27 4
gpt4 key购买 nike

我有一个列,其中包含带有度数符号的度数值。

42.9377º
42.9368º
42.9359º
42.9259º
42.9341º

数字 0 应该代替度数符号

我尝试使用正则表达式或 str.replace 但我无法找出确切的 unicode 字符。

源 xls 的格式为 º

错误显示它是一个obelus ÷

打印数据框将其显示为

度数符号的确切位置可能会有所不同,具体取决于小数的四舍五入,因此我无法使用确切的字符串位置进行替换。

最佳答案

使用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

解决方案 extract floats .

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

关于python - 如何替换pandas中字符串中的非数字或小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44777828/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com