Python 将数据帧中的字符串转换为整数

Python 将数据帧中的字符串转换为整数,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,其中有一列用于查看的次数。数据框列以这种格式列出 816 ratings 1,139 ratings 5 ratings 22,3456 ratings 我想把它转换成一个整数,这样我就可以对数据帧进行排序了。我的输出应该是 816 1139 5 223456 我试过了 df=df['num_reviews'].str.extract('(\d+)').astype(float) df 然而,这将逗号后的所有内容转换为十进制。(即223456返回22.0) 使用.astyp

我有一个数据框,其中有一列用于查看的次数。数据框列以这种格式列出

816 ratings
1,139 ratings
5 ratings
22,3456 ratings
我想把它转换成一个整数,这样我就可以对数据帧进行排序了。我的输出应该是

816
1139
5
223456
我试过了

df=df['num_reviews'].str.extract('(\d+)').astype(float)
df
然而,这将逗号后的所有内容转换为十进制。(即223456返回22.0) 使用.astype(int)时,由于字段具有NaN,所以给了我错误

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

df=df['num_reviews'].str.replace(r'\D+','').astype(int)
.astype(int)
float返回十进制值当我使用时,我得到以下错误“无法将float NaN转换为整数”,但如果我使用float,您的代码工作正常,谢谢!我只需要能够分类