Reputation: 37
tempdata =pd.pivot_table( gas_diesel_df, values = 'Quantity' ,index = ['Year','Country or Area'],
columns = ['Commodity - Transaction'])
tempdata.iloc[0:10]
At here, I just want to filter quantity values with a specific Country. But I can't use loc method. What do you suggest to special filtering in any pivot table?
Upvotes: 1
Views: 131
Reputation: 862511
Sample
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
EDIT:
If you need select by multiple years
, use loc
see doc:
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
Upvotes: 1