我的数据框中有一些列,如下所示:
total
NaN
26-27
52-53
88-89
165
280
399
611
962
1407
1937
我想使用四舍五入将它们转换为数值:
total
NaN
27
53
89
165
280
399
611
962
1407
1937
显然, pd.to_numeric() 不起作用,因为 26-27 是一个对象。可以一个一个的做,但是有没有优雅快捷的转换方式呢?
最佳答案
IIUC,我们可以使用一点正则表达式来提取所有数字,捕获行终止符之前的最后一个元素
之前 \n
使用 $
\d+
匹配一个数字(等于 [0-9])+
量词 - 一次和无限次之间的匹配,次数为
df['total'].str.extract(r'(\d+)$').astype(float)
out:
0 NaN
1 27.0
2 53.0
3 89.0
4 165.0
5 280.0
6 399.0
7 611.0
8 962.0
9 1407.0
10 1937.0
Name: total, dtype: float64
关于python - 将数据框字符串类别转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515647/