gpt4 book ai didi

python - 为什么我不能在数字列上过滤 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:16 25 4
gpt4 key购买 nike

我正在使用 Pandas 分析 csv 数据。数据框如下所示:

    tech_nbr    door_age    service_spend   service_calls
0 2 -7,987 1 3
1 3 -7,987 1 3
2 231561 -7,987 1 3
3 2531885 13 1 3
4 A451349 9 1 3

现在我想使用以下命令过滤掉 door_age 为负数的所有行,例如第 0 行和第 1 行。

df_filtered = df.filter(df.door_age > 0)

但是我得到了错误:

TypeError: '>' not supported between instances of 'str' and 'int'

我猜年龄的某些值不是数字,因此我添加了以下行来删除基于 Remove non-numeric rows in one column with pandas 的非数字 door_age

df[df.door_age.apply(lambda x: x.isnumeric())]

它似乎确实删除了很多行,但我仍然遇到相同的错误。因此,我还使用 `df = df.dropna(subset=['door_age']) 过滤掉了 door_age 具有空值的行。然而这也没有帮助。

为什么我仍然收到此错误?

最佳答案

在尝试任何数值计算之前,您需要确保您的系列是数值类型。

在这种情况下,您可以将非数字值强制转换为 np.nan:

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

关于python - 为什么我不能在数字列上过滤 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581451/

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