首页 > 解决方案 > 如何从包含熊猫/python中混合类型字符的字符串中仅取出数字(int和float)?

问题描述

我有一个这样的数据框

df
col1         col2
 A         abc2.4 rs
 B         20.66
 C         sd 23.44 ()
 D         200(pw)
 E         pw 2400 (pw)

我想从 col2 的字符串中只取出数字(int 和 float)

最终的数据框应如下所示:

col1       col2
 A         2.4
 B         20.66
 C         23.44
 D         200
 E         2400

如何使用 pandas 以最有效的方式做到这一点?

标签: pythonregexpandasdataframe

解决方案


使用Series.str.extract

df['col2'] = df['col2'].str.extract(r'(\d+\.\d+|\d+)', expand=False)
print (df)
  col1   col2
0    A    2.4
1    B  20.66
2    C  23.44
3    D    200
4    E   2400

推荐阅读