2016-04-13 27 views
5

掩蔽數據我有一個數據幀多指數是這樣的:大熊貓多指數如何通過第二電平

Date  Period  Value \n 
20130101 0   12 \n 
20130101 1   13 
20130102 0   13 
20130102 1   14 

第一級是日期和第二級是週期。我想設置其中週期是不是零到零值,輸出將是這樣的:

Date  Period  Value 
20130101 0   12 
20130101 1   0 
20130102 0   13 
20130102 1   0 

如果第二級是相對於索引的列,該解決方案將是很容易df.Value.loc[df.Period == 0] =0

有沒有一種方法來實現這一點,只需使用索引?

回答

2

試試這個:

df.loc[df.index.get_level_values('Period') != 0, 'Value'] = 0 

說明:

In [5]: df 
Out[5]: 
       Value 
Date  Period 
20130101 0   12 
     1   13 
20130102 0   13 
     1   14 

In [6]: df.index.get_level_values('Period') 
Out[6]: Int64Index([0, 1, 0, 1], dtype='int64', name='Period') 

In [7]: df.index.get_level_values('Period') != 0 
Out[7]: array([False, True, False, True], dtype=bool) 

In [8]: df[df.index.get_level_values('Period') != 0] 
Out[8]: 
       Value 
Date  Period 
20130101 1   13 
20130102 1   14 

In [9]: df.loc[df.index.get_level_values('Period') != 0, 'Value'] = 0 

In [10]: df 
Out[10]: 
       Value 
Date  Period 
20130101 0   12 
     1   0 
20130102 0   13 
     1   0