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
loc and iloc are interchangeable when labels are 0-based integers.
If you are on version 0.14, you can simply pass a tuple to .loc
as below:
df.loc[('at', [1,3,4]), 'Dwell']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With