我有一个数据框,其中有一个用于评论数量的列,该数据框列以这种格式列出
816 ratings
1,139 ratings
5 ratings
22,3456 ratings
Id喜欢将其转换为整数,以便可以对数据框进行排序。我的输出应该是
816
1139
5
223456
我尝试过
df=df['num_reviews'].str.extract('(\d+)').astype(float)
df
但是这会将逗号后的所有内容转换为十进制。 (即22,3456返回22.0) 并使用.astype(int)给我错误,因为字段具有NaN
答案 0 :(得分:1)
df['num_reviews'].str.replace(r'\D+', '').replace('','0').astype(float)
测试用例:
df = pd.DataFrame({
'num_reviews': ["816 ratings", "1,139 ratings",
"5 ratings", "no ratings", "22,3456 ratings"]
})
print (df['num_reviews'].str.replace(r'\D+', '').replace('','0').astype(float))
输出:
0 816.0
1 1139.0
2 5.0
3 0.0
4 223456.0