gpt4 book ai didi

python-3.x - pandas to_numeric 无法将字符串值转换为整数

转载 作者:行者123 更新时间:2023-12-05 07:41:01 30 4
gpt4 key购买 nike

我正在尝试使用 pandas.to_numeric 将系列转换为 int

df['numeric_col'] = pd.to_numeric(df['numeric_col'], errors='raise')

我有错误,

Traceback (most recent call last):
File "/home/user_name/script.py", line 86, in execute
data = module(**module_args).execute(data)
File "/home/user_name/script.py", line 62, in execute
invoices['numeric_invoice_no'] = pd.to_numeric(invoices['numeric_invoice_no'], errors='raise')
File "/usr/local/lib/python3.5/dist-packages/pandas/core/tools/numeric.py", line 126, in to_numeric
coerce_numeric=coerce_numeric)
File "pandas/_libs/src/inference.pyx", line 1052, in pandas._libs.lib.maybe_convert_numeric (pandas/_libs/lib.c:56638)
ValueError: Integer out of range. at position 106759

如果我把它改成,

df['numeric_col'] = pd.to_numeric(df['numeric_col'], errors='coerce')

numeric_col 中的值不会转换为 int,即它们仍然是 string

如果我改成,

df['numeric_col'] = df['numeric_col'].astype(int)

我出错了,

OverflowError: Python int too large to convert to C long

所以我必须把它改成,

df['numeric_col'] = df['numeric_col'].astype(float)

然后就没有错误产生了。

系列的大小约为 994572,列中的字符串如 523336122735603286002031757

我想知道这里的 to_numericastype 有什么问题。

我在 Linux mint 18.1 64 位 上运行 Python 3.5

最佳答案

也许您的数字字符串值中有一个逗号 (,),或者您的数据框的列中仍然有一个空值 (NaN),因此请尝试使用空格替换逗号.replace() 方法然后删除或填充 Null 值.fillna() 或 .replace 或 .dropna()

使用前df['DataFrame Column'] = df['DataFrame Column'].astype(int)

关于python-3.x - pandas to_numeric 无法将字符串值转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696492/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com