Pandas 如何使用透视表中的特殊索引筛选值(多维数据)

Pandas 如何使用透视表中的特殊索引筛选值(多维数据),pandas,Pandas,在这里,我只想过滤特定国家的数量值。但我不能使用loc方法。您对任何透视表中的特殊筛选有何建议?您可以使用或-: 样本 tempdata =pd.pivot_table( gas_diesel_df, values = 'Quantity' ,index = ['Year','Country or Area'], columns = ['Commodity - Transaction']) tempdata.iloc[0:10] 编辑: 如果需要按多

在这里,我只想过滤特定国家的数量值。但我不能使用loc方法。您对任何透视表中的特殊筛选有何建议?

您可以使用或-:

样本

tempdata =pd.pivot_table( gas_diesel_df, values = 'Quantity' ,index = ['Year','Country or Area'],
                      columns = ['Commodity - Transaction'])
tempdata.iloc[0:10]
编辑:

如果需要按多个
年份
进行选择,请使用
loc
参见:


对不起,我还有一个问题。我想选择多个年份值,但我只能用ix方法选择一个年份值,不能使用loc方法。在这里我可以使用哪种方法?谢谢…我想你需要使用
loc
方法,但我认为如上所述更简单。请参见编辑。顺便说一句,你也可以投票给我的答案-点击
0
(接受标记附近)上方的小三角形。谢谢
print gas_diesel_df
   Year Country or Area Commodity - Transaction  Quantity
0  2015             A11                      B1        50
1  2015             A11                      C2        60
2  2015             A11                      B1        45
3  2015             A11                      B2        70
4  2015             B11                      B1        40
5  2015             B11                      C2        45
6  2015             C11                      B1        60
7  2015             C11                      B1        65

tempdata =pd.pivot_table( gas_diesel_df, values = 'Quantity' ,index = ['Year','Country or Area'],
                      columns = ['Commodity - Transaction'])
print tempdata
Commodity - Transaction    B1  B2  C2
Year Country or Area                 
2015 A11                 47.5  70  60
     B11                 40.0 NaN  45
     C11                 62.5 NaN NaN

print tempdata.xs('A11', level=1)
Commodity - Transaction    B1  B2  C2
Year                                 
2015                     47.5  70  60
print tempdata.loc[(slice(None),'A11'),:]
Commodity - Transaction    B1  B2  C2
Year                                 
2015                     47.5  70  60
print gas_diesel_df
   Year Country or Area Commodity - Transaction  Quantity
0  2013             A11                      B1        50
1  2015             A11                      C2        60
2  2015             A11                      B1        45
3  2015             A11                      B2        70
4  2015             B11                      B1        40
5  2014             B11                      C2        45
6  2014             C11                      B1        60
7  2014             C11                      B1        65

tempdata =pd.pivot_table( gas_diesel_df, values = 'Quantity' ,index = ['Year','Country or Area'],
                      columns = ['Commodity - Transaction'])

print tempdata
Commodity - Transaction    B1  B2  C2
Year Country or Area                 
2013 A11                 50.0 NaN NaN
2014 B11                  NaN NaN  45
     C11                 62.5 NaN NaN
2015 A11                 45.0  70  60
     B11                 40.0 NaN NaN

print tempdata.loc[2013]
Commodity - Transaction  B1  B2  C2
Country or Area                    
A11                      50 NaN NaN

print tempdata.loc[2013:2014]
Commodity - Transaction    B1  B2  C2
Year Country or Area                 
2013 A11                 50.0 NaN NaN
2014 B11                  NaN NaN  45
     C11                 62.5 NaN NaN