這可能是一個兩部分問題,但我正在尋找對二級索引標識的記錄子集重新標定(或執行任何操作)的最佳方法。子集熊貓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