使用pandas.dataframe.query方法()用子集替换数据帧的适当方法是什么?

时间:2016-08-24 18:34:37

标签: python pandas dataframe

这个问题与我在这里提出的问题非常相似:

Python Pandas SettingWithCopyWarning copies vs new objects

我想了解如何排除给定数据框中的记录(IE操作数据框而不是视图),同时还可以选择对结果应用其他操作。

我很难理解在操作Pandas DataFrame对象时Python如何管理引用与值的分配。我正在使用Pandas Dataframe中的数据集,并且我希望根据某些属性值减少设置。我还想对此操作的结果应用其他操作。我想使用的首选方法是.query()方法。这是一个简单的例子:

mydf = pd.DataFrame({'col1':['A','B','C'],
                 'col2':['x','y','z']})
mydf = mydf.query('col1 == \'A\'')

这将在概念上实现我所寻找的目标;根据对它的查询减少我正在使用的数据集。我的问题是:

"这是查询功能的正确应用,还是我应该做其他事情,如果我有其他操作要执行' mydf'"?

我已阅读this documentation,但仍然不明白需要注意的陷阱......

1 个答案:

答案 0 :(得分:2)

如果您不需要过滤掉(减少)的数据,我认为这是一种正确的方法。你也可以链接你的“附加操作”(非常有效),如下所示:

 mydf = mydf.query('col1 == "A"').func1(...).func2(...).func3(...)

Here is a link to the documentation with lots of examples of how to use the query() method