我已将一些定价数据读取到 pandas 数据框中,这些值显示为:
$40,000*
$40000 conditions attached
我想将其精简为数值。
我知道我可以循环并应用正则表达式
[0-9]+
每个字段然后将结果列表重新连接在一起,但是有没有一种不循环的方法?
Thanks
你可以使用Series.str.replace:
import pandas as pd
df = pd.DataFrame(['$40,000*','$40000 conditions attached'], columns=['P'])
print(df)
# P
# 0 $40,000*
# 1 $40000 conditions attached
df['P'] = df['P'].str.replace(r'\D+', '', regex=True).astype('int')
print(df)
yields
P
0 40000
1 40000
since \D
匹配任何不是十进制数字的字符.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)