给定一个multIndex数据帧:
mux = pd.MultiIndex.from_arrays([
list('aaaabbbbbccdddddd'),
list('tuvwlmnopxyfghijk')
], names=['one', 'two'])
df = pd.DataFrame({'col': np.arange(len(mux))}, mux)
df
col
one two
a t 0
u 1
v 2
w 3
b l 4
m 5
n 6
o 7
p 8
c x 9
y 10
d f 11
g 12
h 13
i 14
j 15
k 16
是否可以将对应的行保留到数据帧第0级的第i个值?在
对于i=2,我的预期输出为:
^{pr2}$请注意,只保留与a和b相关的行,其他所有内容都将被删除。我希望问题是清楚的,但如果不是,请随时要求澄清。在
我试过了:
idx = pd.IndexSlice
df.iloc[(idx[:2], slice(None))]
但这只给出了整个df的前两行,而不是第0层前两个值的所有行。在
一种方法是返回第0级的索引值,然后用这些值索引到原始数据帧中:
^{1}$正如评论中提到的,这只适用于第0层,而不是第1层。可能还有一个更具普遍性的解决方案可以与其他级别一起使用。在
相关问题 更多 >
编程相关推荐