Weiß jemand, ob es möglich ist, mit der DataFrame.loc-Methode einen MultiIndex auszuwählen? Ich habe den folgenden DataFrame und möchte auf die Werte in den 'Dwell'-Spalten zugreifen können, die sich in den Indizes ('at', 1)
, ('at', 3)
, ('at', 5)
Usw. befinden Ein (nicht sequentiell).
Ich würde gerne in der Lage sein, etwas wie data.loc[['at',[1,3,5]], 'Dwell']
Zu tun, ähnlich der Syntax data.loc[[1,3,5], 'Dwell']
Für einen regulären Index (der eine 3-gliedrige Reihe von Dwell-Werten zurückgibt).
Mein Ziel ist es, eine beliebige Teilmenge der Daten auszuwählen, eine Analyse nur für diese Teilmenge durchzuführen und dann die neuen Werte mit den Ergebnissen der Analyse zu aktualisieren. Ich plane, die gleiche Syntax zu verwenden, um neue Werte für diese Daten festzulegen, sodass das Verketten von Selektoren in diesem Fall nicht wirklich funktioniert.
Hier ist ein Ausschnitt aus dem DataFrame, mit dem ich arbeite:
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
Vielen Dank!
Wenn Sie mit Version 0.14 arbeiten, können Sie einfach einen Tupel wie folgt an .loc
Übergeben:
df.loc[('at', [1,3,4]), 'Dwell']
Versuchen Sie die Querschnitt Indizierung:
In [68]: df.xs('at', level='QGram', drop_level=False).loc[[1,4]]
Out[68]:
Char Dwell Flight ND_Offset Offset
QGram
at 1 t 180 0 0.108363 5
4 a 20 180 0.000000 0