【发布时间】:2014-07-03 13:46:18
【问题描述】:
我想遍历分层索引熊猫数据框并打印基于“group1”级别的子集。
这是我的数据框
df = pd.DataFrame({'group1': ['a','a','a','b','b','b','c','c','d','d','d','d','d'],
'group2': ['c','c','d','d','d','e','f','f','e','d','d','d','e'],
'value1': [1.1,2,3,4,5,6,7,8,9,1,2,3,4],
'value2': [7.1,8,9,10,11,12,43,12,34,5,6,2,3]})
df = df.set_index(['group1', 'group2'])
这就是它的样子:
value1 value2
group1 group2
a c 1.1 7.1
a c 2.0 8.0
a d 3.0 9.0
b d 4.0 10.0
b d 5.0 11.0
b e 6.0 12.0
c f 7.0 43.0
d f 8.0 12.0
d e 9.0 34.0
d d 1.0 5.0
d d 2.0 6.0
d d 3.0 2.0
d e 4.0 3.0
我可以像这样基于 group1 成功打印一个 SINGLE 子集:
print df.xs('a', level=0)
value1 value2
group2
c 1.1 7.1
c 2.0 8.0
d 3.0 9.0
但是我怎样才能把它放在一个循环中为'group1'中的每组元素打印一个子集呢?
我的失败尝试:
for group1, group2 in df.index:
print df.xs(group1, level=0)
这为每个索引打印了一个子集,而不是将它们组合在一起(希望有意义)。
【问题讨论】:
标签: python loops pandas subset multi-index