【发布时间】:2014-09-25 00:01:54
【问题描述】:
之前有人问过这个问题的变体,我仍然无法理解如何根据我想要设置的条件实际切片 python 系列/熊猫数据帧。
在 R 中,我想做的是:
df[which(df[,colnumber] > somenumberIchoose),]
which() 函数在数据框中的列中查找大于 somenumberIchoose 的行条目的索引,并将其作为向量返回。然后,我使用这些行索引对数据帧进行切片,以指示我希望在新表单中查看数据帧的哪些行。
在 python 中有没有等效的方法来做到这一点?我看到了对枚举的引用,在阅读文档后我并不完全理解。为了立即获取行索引,我的示例如下所示:
indexfuture = [ x.index(), x in enumerate(df['colname']) if x > yesterday]
但是,我不断收到无效的语法错误。我可以通过 for 循环遍历这些值并自己手动进行搜索来破解解决方法,但这似乎非常非 Python 且效率低下。
enumerate() 究竟是做什么的?在满足所需参数的向量中查找值索引的 Python 方法是什么?
注意:我将 Pandas 用于数据帧
【问题讨论】:
-
你能显示错误的完整回溯吗?
-
你可以试试:
[a.index() for (a, b) in enumerate(df['colname']) if b > yesterday] -
明确一点,pandas DataFrames 可以有各种索引,而不仅仅是整数。你只想要整数索引,还是实际的原始行索引?
-
该问题询问
which(),它返回满足某些条件的索引向量。最佳答案是关于布尔子集。 This post 包含我认为与which()等效的内容。
标签: python pandas logical-operators