gpt4 book ai didi

python - 排除除一列之外的所有值超过 100 的行

转载 作者:行者123 更新时间:2023-12-01 09:09:25 24 4
gpt4 key购买 nike

我正在使用开放的食品事实数据集,该数据集非常非常困惑。它有很多列,其中列出了每 100 克某些成分(如糖)的含量(以克为单位)。根据概述(.describe()),大多数列的最大值超过 100,这显然是不可能的。除能量栏外都是如此,因为能量不是以克为单位测量的。

大多数列的最小值有时也为负值。然而,这个问题很容易解决: data = data[data >= 0]

我想知道如何才能消除除能量列之外条目超过 100 的所有行。

我试过这个:data = data[data.drop(columns=['energy_100g']) <= 100]

但也删除了能量栏中的所有条目。

有人可以帮我吗?

我真的很感激!

最佳答案

假设您希望删除除 energy_100g 之外任何列的值大于 100 的行。在这种情况下,您可以使用 pd.DataFrame.any创建 bool 掩码:

data = data[~(data[data.columns.difference(['energy_100g'])] > 100).any(1)]

同样,您可以使用 all 而不进行否定和反向比较:

data = data[(data[data.columns.difference(['energy_100g'])] <= 100).all(1)]

在每种情况下,我们都使用 pd.Index.difference 来排除比较的指定列。

关于python - 排除除一列之外的所有值超过 100 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51788445/

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