major minor col
0 0 5
1 6
2 4
0 0 8
1 5
2 6
1 0 3
1 6
2 9
1 0 5
1 1
2 7
首先,我想
major minor col
0 0 5
1 6
2 4
0 0 8
1 5
2 6
然后选择两个主要' 0,即选择第一个主要0或第二个:
major minor col
0 0 5
1 6
2 4
或
major minor col
0 0 8
1 5
2 6
不幸的是df.xs(0,level=0,drop_level=False)
并不完全符合这项工作,因为它会保留索引中的主要内容,尽管是空的。有什么想法吗?
答案 0 :(得分:0)
我仍然不了解您的数据结构。我现在正在使用
val
major minor col
0 0 5 1
1 6 1
2 4 1
0 8 1
1 5 1
2 6 1
我仍然不明白你的情况如何两个主要零,因为我只有一个具有相同结构的人。因此,我无法准确地告诉你如何挑选任何* major * s。
使用传统切片,您可以使用
获取df.major == 0
df[df.major == 0]
为了现在选择任何一个子组,它取决于它们的不同之处。他们有另一个独特的功能吗?然后你可以做
df[(df.major == 0) && (df.someColumn == someValue)]
(注意括号)。否则,如果您知道每个组有3
行,df[df.major == 0].iloc[:3]
(或3:
)会为您提供记录。
另外,请查看(目前为实验性的)df.query()
(documentation)。
通常,您可以执行
等操作 df[df.major == 0]
获取major为零的所有值。如果它(标记的)索引或普通列无关紧要。你也可以堆叠这些来做
`df [(df.major == 0)
我从
开始In[264]: df
Out[262]:
val
major minor col
0 0 5 1
1 6 1
2 4 1
0 8 1
1 5 1
2 6 1
1 1 3 1
6 1
2 9 1
1 5 1
1 1
2 7 1
然后我做
In[263]: df.query('major == 0')
Out[261]:
val
major minor col
0 0 5 1
1 6 1
2 4 1
0 8 1
1 5 1
2 6 1