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]进行搜索。很遗憾,你的问题并没有传达出你试图解决的问题。提出正确的问题会给你一半的答案。我发现很难理解你想做什么。但是有很多人比我聪明,他们应该随时来救你