Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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-如何从多索引数据帧中选择行_Python_Python 3.x_Pandas - Fatal编程技术网

Python-如何从多索引数据帧中选择行

Python-如何从多索引数据帧中选择行,python,python-3.x,pandas,Python,Python 3.x,Pandas,我目前有一个数据帧,其中每一行都由一个物理三维坐标索引。以下是数据的示例: ind pos x y z 1.0 8.0 2.0 0 (52.3311, 240.997, 70.7449) 2.0 1 (54.8969, 241.985, 72.116) 2.0 2 (51.9996, 240.91, 73.2884) 2.0 3 (51.765, 240.269, 71.5289)

我目前有一个数据帧,其中每一行都由一个物理三维坐标索引。以下是数据的示例:

            ind pos
x   y   z       
1.0 8.0 2.0 0   (52.3311, 240.997, 70.7449)
        2.0 1   (54.8969, 241.985, 72.116)
        2.0 2   (51.9996, 240.91, 73.2884)
        2.0 3   (51.765, 240.269, 71.5289)
        2.0 4   (53.5773, 243.276, 69.569)
        2.0 5   (53.1426, 240.779, 71.912)
我想选择所有坐标(x,y,z)等于某个值的条目。最有效的方法是什么?我有一个相当大的数据集(~300万个条目),我想选择x、y或z中任何一个都等于33的所有行。

这应该可以做到:

df[1.0,8.0,2.0] 
还有
xs
帮助您管理多索引:

df.xs(('1.0', '8.0', '2.0')) 

PS:如果您的索引是字符串而不是浮点数,则使用引号。

您的意思是“我想选择x、y或z的和”等于33的所有行,这可能是重复的。只知道单向-。不过,我很想看一看备选方案效率的比较分析。query()正是我想要的。谢谢问题是,我不知道如何使用xs来选择任何值都可能是我想要的切片。例如,假设我将这个键值设为20。我不知道如何使用xs来选择x为20、y为20、z为20、x和y为20、y和z为20的行。此外,x、y、z的值范围很广,所以我不能只使用df[x、y、z]进行搜索。很遗憾,你的问题并没有传达出你试图解决的问题。提出正确的问题会给你一半的答案。我发现很难理解你想做什么。但是有很多人比我聪明,他们应该随时来救你