【发布时间】:2022-01-24 19:03:50
【问题描述】:
我有以下数据框:
df = pd.DataFrame({'A': ['2.5cm','2.5cm','2.56”','1.38”','2.2”','0.8 in','$18.00','4','2"']})
看起来像:
A
2.5cm
2.5cm
2.56”
1.38”
2.2”
0.8 in
$18.00
4
2"
我想删除除小数点以外的所有字符。
输出应该是:
A
2.5
2.5
2.56
1.38
2.2
0.8
18.00
4
2
这是我尝试过的:
df['A'] = df.A.str.replace(r"[a-zA-Z]", '')
df['A'] = df.A.str.replace('\W', '')
但这会删除包括小数点在内的所有内容。
任何建议将不胜感激。
提前谢谢你
【问题讨论】:
-
按照你的方式怎么样:
df.A.str.replace(r"[^\d.]", ""):删除除点之外的任何非数字? -
正则表达式中的
^否定了里面的内容;因此,如果它不是数字也不是文字点,我们将其删除。 regex101.com/r/eIYEin/1.
标签: python python-3.x pandas dataframe