以前也有人问过这个问题的变体,我仍然很难理解如何根据我想要设置的条件实际分割python系列/pandas数据帧。
在R,我要做的是:
df[which(df[,colnumber] > somenumberIchoose),]
函数的作用是:查找数据框中某列中大于someNumberRichoose的行项索引,并将其作为向量返回。然后,我使用这些行索引来表示要在新表单中查看数据帧的哪些行,从而对数据帧进行切片。
在python中是否有类似的方法来完成此任务?我见过枚举的引用,在阅读了文档之后,我不完全理解它。为了获得行索引,我的示例如下所示:
indexfuture = [ x.index(), x in enumerate(df['colname']) if x > yesterday]
但是,我一直得到一个无效的语法错误。我可以通过循环遍历这些值来破解一个解决方案,并且可以自己手动执行搜索,但这看起来非常不符合python,而且效率很低。
枚举()到底做什么?在满足所需参数的向量中找到值索引的python方法是什么?
注意:我使用Pandas作为数据帧
我可能不太明白这个问题,但似乎回答起来比你想的要容易:
使用pandas数据帧:
返回具有真/假值和数据帧原始索引的pandas系列。
然后,可以在原始数据帧上使用该布尔序列,并获取要查找的子集:
应该够了。
见http://pandas.pydata.org/pandas-docs/stable/indexing.html#boolean-indexing
据我所知,使用numpy——一个类似于MATLAB的科学计算软件包,您可能会更舒服一些。
如果您希望数组的索引值可以被2整除,那么下面的方法可以工作。
使用多维数组也很容易
enumerate()
返回一个迭代器,该迭代器在每次迭代中生成一个(index, item)
元组,因此您不能(也不需要)再次调用.index()
。此外,您的列表理解语法错误:
测试用例:
当然,你不需要打开元组:
除非你只对指数感兴趣,在这种情况下你可以做
相关问题 更多 >
编程相关推荐