我正在处理一个数据帧,其中一列如下:
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')
如果需要,您可以调整正则表达式,请参阅手册页。它假设所有评级都是小数(而不是整数(,并且有一个小数点。