【问题标题】:Convert string in pandas dataframe to integer将熊猫数据框中的字符串转换为整数
【发布时间】:2020-11-03 07:26:11
【问题描述】:

我有一个数据框,其中包含评论数列,数据框列以这种格式列出

816 ratings
1,139 ratings
5 ratings
22,3456 ratings

我想将其转换为整数,以便对数据框进行排序。我的输出应该是

816
1139
5
223456

我试过了

df=df['num_reviews'].str.extract('(\d+)').astype(float)
df

但是,这会将逗号后的所有内容转换为小数。 (即 22,3456 返回 22.0) 并且使用 .astype(int) 给了我错误,因为字段有 NaN

【问题讨论】:

  • df=df['num_reviews'].str.replace(r'\D+', '').astype(int)?
  • .astype(int) float 返回十进制值
  • 当我使用它时,我收到以下错误“无法将浮点 NaN 转换为整数”,但是如果我使用浮点,你的代码可以工作,所以谢谢!我只需要能够排序

标签: python pandas dataframe


【解决方案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

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2018-11-23
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多