Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pandas.dataframe.query method()用子集替换数据框的合适方法是什么?_Python_Pandas_Dataframe - Fatal编程技术网

Python 使用pandas.dataframe.query method()用子集替换数据框的合适方法是什么?

Python 使用pandas.dataframe.query method()用子集替换数据框的合适方法是什么?,python,pandas,dataframe,Python,Pandas,Dataframe,这个问题与我在这里提出的问题非常相似: 我想了解如何排除给定数据帧内的记录(即在数据帧上操作而不是它的视图),同时还可以选择对结果应用其他操作 我很难理解Python在操作数据帧对象时是如何管理引用和值分配的。我正在使用熊猫数据框架中的数据集,我希望根据某些属性值减少设置。我还想对这个操作的结果应用额外的操作。我想使用的首选方法是.query()方法。下面是一个简单的例子: mydf = pd.DataFrame({'col1':['A','B','C'],

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

我想了解如何排除给定数据帧内的记录(即在数据帧上操作而不是它的视图),同时还可以选择对结果应用其他操作

我很难理解Python在操作数据帧对象时是如何管理引用和值分配的。我正在使用熊猫数据框架中的数据集,我希望根据某些属性值减少设置。我还想对这个操作的结果应用额外的操作。我想使用的首选方法是.query()方法。下面是一个简单的例子:

mydf = pd.DataFrame({'col1':['A','B','C'],
                 'col2':['x','y','z']})
mydf = mydf.query('col1 == \'A\'')
这将在概念上实现我所寻找的目标;基于对数据集的查询,对我正在处理的数据集进行缩减。我的问题是:

“这是查询函数的正确应用程序吗?如果我要对‘mydf’执行其他操作,是否应该执行其他操作?”


我已经通读了一遍,但仍然不明白要注意哪些陷阱…

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

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

太好了-谢谢你,马克斯。我几乎只是在我最后一个问题的评论中直接问你;)。一般来说,这个主题(引用与赋值)是Python世界中我最难理解的主题。谢谢你的帮助@塞文斯,不客气!很难预测pandas何时会复制您的数据,何时会在“视图”上工作-如果您想详细了解它,您可以查看您的python路径/Lib/site packages/pandas/下的源代码-这需要时间,但很有趣。。。