从分类列的文本中切片数值



我正在处理一个数据帧,其中一列如下:

Rating
4.8 out of 5 stars
4.0 out of 5 stars
4.5 out of 5 stars

我想把这些数据切片,只保留第一个数字,例如

Rating
4.8
4.0
4.5

我该怎么解决?

要从字符串(或分类(列的文本中提取字段,请使用pandasSeries.str.extract和regex:

df['Rating'].str.extract('([1-5].[0-9])')
0
0  4.8
1  4.0
2  4.5
df = pd.DataFrame({'Rating': ['4.8 out of 5 stars', '4.0 out of 5 stars', '4.5 out of 5 stars']}, dtype='category')

如果需要,您可以调整正则表达式,请参阅手册页。它假设所有评级都是小数(而不是整数(,并且有一个小数点。

最新更新