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,您的代码工作正常,谢谢!我只需要能够分类