【问题标题】:Converting currency to numeric value将货币转换为数值
【发布时间】:2022-12-03 14:37:14
【问题描述】:

由于它们是对象格式,我试图通过将我的 df 中的价格转换为数值来创建一个新变量。

我试图从列中的数字中删除“,”和“$”,然后使用 pd.to_numeric 将它们转换为不同的类型

df_l['price_MXN2'] = df_l['price_MXN'].str.replace(',','')
    
df_l['price_MXN2'] = df_l['price_MXN'].str.replace('$','')
    
df_l['price_MXN2'] = pd.to_numeric(df_l['price_MXN2'])

我收到“ValueError:无法解析位置 0 处的字符串”

【问题讨论】:

    标签: pandas currency converters dtype


    【解决方案1】:

    看起来您正在尝试将货币字符串转换为 Pandas DataFrame 中的数值。错误消息“ValueError: Unable to parse string at position 0”表示 to_numeric() 方法无法解析 price_MXN2 列中第一个位置(索引 0)的字符串。

    此错误的一个可能原因是 price_MXN2 列包含无效字符或非数字值。您可以使用 df_l['price_MXN2'].unique() 方法检查 price_MXN2 列中的值,该方法将返回该列中所有唯一值的数组。

    如果 price_MXN2 列包含无效字符或非数字值,您可以使用 pd.to_numeric() 方法并将 errors 参数设置为 'coerce' 以将值转换为数字,同时忽略或替换任何无效字符。这是一个例子:

     # Convert the price_MXN2 column to numeric, ignoring any invalid values
    df_l['price_MXN2'] = pd.to_numeric(df_l['price_MXN2'], errors='coerce')
    

    这会将 price_MXN2 列转换为数字,任何无效值都将替换为 NaN。然后,您可以使用 df_l.dropna() 方法从 DataFrame 中删除任何具有缺失值的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多