这可能是一个两部分问题,但我正在寻找对二级索引标识的记录子集重新标定(或执行任何操作)的最佳方法。子集熊猫DataFrame二级索引和重新分配值
例如 - 说我有以下的数据帧:
>>> df=pd.DataFrame(data=[[1,2,3],[.4,.5,.6],[7,8,9],[.10,.11,.12]], index=pd.MultiIndex.from_tuples([(1,'a'), (1,'b'), (2,'a'), (2,'b')]), columns=['Var1','Var2','Var3'])
>>> df.index.names=['Number','Letter']
>>> print df
Var1 Var2 Var3
Number Letter
1 a 1.0 2.00 3.00
b 0.4 0.50 0.60
2 a 7.0 8.00 9.00
b 0.1 0.11 0.12
我想通过字母“B”标识的两个记录有乘以10
第一个变量的所有3我正在努力的方面是如何选择多索引的第二个索引。我可以用下面的工作马虎,各地做到这一点,但我想像有一个更清洁的方式:
>>> df=df.reset_index().set_index(['Letter','Number'])
>>> Records=df.loc['b']
>>> print Records
Var1 Var2 Var3
Number
1 0.4 0.50 0.60
2 0.1 0.11 0.12
任何建议上一个更好的方法进行子集在第二索引?
,然后我可以重新调节:
>>> print Records*10
Var1 Var2 Var3
Number
1 4 5 6
2 10 11 12
但是,我怎么那么这些新近重新调整值替换原有的值?
'df1.stack()。Swaplevel为(0,1)'? – leroyJr
是的,这是选项。添加到我的答案。谢谢。 – pausag