【问题标题】:How can I convert string to int? dtype("O") - ValueError: invalid literal for int() with base 10: '' [duplicate]如何将字符串转换为 int? dtype("O") - ValueError: int() 的无效文字,基数为 10:'' [重复]
【发布时间】:2019-06-15 11:12:27
【问题描述】:

我试图通过转换对象数据类型dtypes('O') 来获取int 值。我需要在代码中写什么以避免错误:invalid literal for int() with base 10:

df.Weekly_Sales.head()

0     24924,5
1    46039,49
2    41595,55
3    19403,54
4     21827,9
Name: Weekly_Sales, dtype: object

dataset['weeklySales'] = dataset['weeklySales'].replace(np.nan, '', regex=True).str.replace(',','')

现在我有以下内容,但作为 obj 类型。

0     249245
1    4603949
2    4159555
3    1940354
4     218279
Name: Weekly_Sales, dtype: object

我试过了,

df['Weekly_Sales'].astype(str).astype('int64')

df['Weekly_Sales'].astype(int)

仍然收到错误: ValueError: int() 以 10 为底的无效文字:''

【问题讨论】:

  • 您是否知道逗号很可能是小数分隔符,并且这样做会有效地使您的数据变得毫无意义?
  • @coldspeed 是的,我知道。我的目的是将str转换为int。

标签: python python-3.x dataframe types pandas-groupby


【解决方案1】:

使用pd.to_numeric 将您的数据框转换为数字,用 0(或您想要的任何数字)填充错误区域,然后最终转换为 int:

df['Weekly_sales'] = pd.to_numeric(df['Weekly_sales'], errors='coerce').fillna(0).astype(int)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多