gpt4 book ai didi

pandas - 如何在 pandas DF 列中找出哪些值无法使用 astype 函数转换为 'int' 类型

转载 作者:行者123 更新时间:2023-12-05 04:50:54 24 4
gpt4 key购买 nike

我正在使用数据框,我必须将列转换为 int 类型

我使用以下符号:

result_df['ftmSectionId'] = result_df['ftmSectionId'].astype('int') 

DF 有几百万行,所以显然有一些值无法转换为 int(可能包括逗号或句点......)我得到错误:

ValueError: invalid literal for int() with base 10: 'not'

现在根据这个问题: How do I fix invalid literal for int() with base 10 error in pandas

我可以使用:

data.Population1 = pd.to_numeric(data.Population1, errors="coerce")

哪个有效。

但是这样一来我不知道为什么一开始就报错了。由于我正在使用的数据库的性质,我希望该特定列只有整数。我如何查询该列以找出哪些值不能使用简单方法 .astype('int') 转换为“int”?

谢谢

其他可能的答案但不重复: Unable to convert pandas dataframe column to int variable type using .astype(int) method这个问题解决了同样的问题,只是他们知道问题是该列包含 NaN 并且他们删除了它们。我不知道这里有什么问题,我的目标不仅是转换为 'int' 而是捕获问题值

最佳答案

您仍然可以使用 errors="coerce",然后在原始系列中获取 NaN 的值:

s = pd.Series(["apple", "1.0", "2", -3, "pear", "12,84"])

nans = pd.to_numeric(s, errors="coerce").isna()

然后 bool 索引给出:

>>> s[nans]

0 apple
4 pear
5 12,84
dtype: object

关于pandas - 如何在 pandas DF 列中找出哪些值无法使用 astype 函数转换为 'int' 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67162721/

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