gpt4 book ai didi

python - pandas.to_numeric - 找出它无法解析的字符串

转载 作者:太空狗 更新时间:2023-10-29 19:35:45 25 4
gpt4 key购买 nike

pandas.to_numeric 应用于包含表示数字的字符串(以及可能其他无法解析的字符串)的数据框列会导致如下错误消息:

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-66-07383316d7b6> in <module>()
1 for column in shouldBeNumericColumns:
----> 2 trainData[column] = pandas.to_numeric(trainData[column])

/usr/local/lib/python3.5/site-packages/pandas/tools/util.py in to_numeric(arg, errors)
113 try:
114 values = lib.maybe_convert_numeric(values, set(),
--> 115 coerce_numeric=coerce_numeric)
116 except:
117 if errors == 'raise':

pandas/src/inference.pyx in pandas.lib.maybe_convert_numeric (pandas/lib.c:53558)()

pandas/src/inference.pyx in pandas.lib.maybe_convert_numeric (pandas/lib.c:53344)()

ValueError: Unable to parse string

查看哪个值解析失败不是很有帮助吗?

最佳答案

我认为您可以添加参数 errors='coerce' 将错误的非数值转换为 NaN,然后通过 isnull 检查此值并使用 boolean indexing :

print (df[pd.to_numeric(df.col, errors='coerce').isnull()])

示例:

df = pd.DataFrame({'B':['a','7','8'],
'C':[7,8,9]})

print (df)
B C
0 a 7
1 7 8
2 8 9

print (df[pd.to_numeric(df.B, errors='coerce').isnull()])
B C
0 a 7

或者如果需要在混合列中查找所有字符串 - 带有字符串值的数字检查值的 type 如果是 string:

df = pd.DataFrame({'B':['a',7, 8],
'C':[7,8,9]})

print (df)
B C
0 a 7
1 7 8
2 8 9

print (df[df.B.apply(lambda x: isinstance(x, str))])
B C
0 a 7

关于python - pandas.to_numeric - 找出它无法解析的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40790031/

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