gpt4 book ai didi

python - 具有逻辑条件的 pandas 数据帧 groupby 的过滤语法

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

我有一个 pandas 数据框,其中包含具有一对多关系的索引。 DataFrame Example 中显示了我的数据的一个非常简化和简短的示例。关联。我想要获取唯一 namIdx 值的列表或系列或 ndarray,其中 nCldLayers <= 1。最终结果应显示索引 601 和 603。

  1. 我可以通过下面的 3 条语句来完成此任务,但我想知道是否有更好、更简洁的方法,例如“filter”、“select”或“where”。

    grouped=(namToViirs['nCldLayers']<=1).groupby(namToViirs.index).all(axis=0)
    grouped = grouped[grouped==True]
    filterIndex = grouped.index
  2. 是否有更好的方法通过在链的后续部分应用逻辑条件 (namToViirs['nCldLayers >= 1) 来实现此结果,即,首先组然后应用逻辑条件,然后仅检索namIdx,其中组中每个成员的逻辑结果为 true?

最佳答案

我认为您的代码工作得很好,只有您可以添加使用小的更改:

all中可以省略axis=0
grouped==True 可以省略 ==True

grouped=(namToViirs['nCldLayers']<=1).groupby(level='namldx').all()
grouped = grouped[grouped]
filterIndex = grouped.index
print (filterIndex)
Int64Index([601, 603], dtype='int64', name='namldx')

我认为更好的是首先按 boolean indexing 进行过滤然后是groupby,因为循环更少 -> 性能更好。

关于python - 具有逻辑条件的 pandas 数据帧 groupby 的过滤语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028500/

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