这个问题与我在这里提出的问题非常相似:
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,但仍然不明白需要注意的陷阱......
答案 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