Does anyone know if it is possible to use the DataFrame.loc
method to select from a MultiIndex
? I have the following DataFrame
and would like to be able to access the values located in the Dwell
columns, at the indices of ('at', 1)
, ('at', 3)
, ('at', 5)
, and so on (non-sequential).
I'd love to be able to do something like data.loc[['at',[1,3,5]], 'Dwell']
, similar to the data.loc[[1,3,5], 'Dwell']
syntax for a regular index (which returns a 3-member series of Dwell
values).
My purpose is to select an arbitrary subset of the data, perform some analysis only on that subset, and then update the new values with the results of the analysis. I plan on using the same syntax to set new values for these data, so chaining selectors wouldn't really work in this case.
Here is a slice of the DataFrame
I'm working with:
Char Dwell Flight ND_Offset Offset
QGram
at 0 a 100 120 0.000000 0
1 t 180 0 0.108363 5
2 a 100 120 0.000000 0
3 t 180 0 0.108363 5
4 a 20 180 0.000000 0
5 t 80 120 0.108363 5
6 a 20 180 0.000000 0
7 t 80 120 0.108363 5
8 a 20 180 0.000000 0
9 t 80 120 0.108363 5
10 a 120 180 0.000000 0
If you are on version 0.14, you can simply pass a tuple to .loc
as below:
df.loc[('at', [1,3,4]), 'Dwell']