将熊猫数据框中的字符串转换为整数

时间:2020-11-02 22:54:15

标签: python pandas dataframe

我有一个数据框,其中有一个用于评论数量的列,该数据框列以这种格式列出

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

1 个答案:

答案 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