У меня возникли проблемы, пропускающие (включая все) один субиндекс в то время как они выбрали первое и третьи субиндексы в моем dataframe:панды dataframe ряд мультииндексный пропустить один
У меня есть dataframe (тест) в виде:
signal dat1 dat2 dat3
condition epoch time
A 0 -1100 1.001322 2.884899 -0.659933
-1099 1.081918 3.389470 -0.413069
-1098 1.168483 3.585312 -0.277902
-1097 1.237908 3.439242 -0.299783
-1096 1.263452 2.942262 -0.496889
A 1 -1100 1.001322 2.884899 -0.659933
-1099 1.081918 3.389470 -0.413069
-1098 1.168483 3.585312 -0.277902
-1097 1.237908 3.439242 -0.299783
-1096 1.263452 2.942262 -0.496889
и я хочу, чтобы извлечь условия и временные точки, так что результирующая таблица выглядит следующим образом:
signal dat1 dat2 dat3
condition epoch time
A 0 -1000 1.001322 2.884899 -0.659933
-999 1.081918 3.389470 -0.413069
-998 1.168483 3.585312 -0.277902
-997 1.237908 3.439242 -0.299783
-996 1.263452 2.942262 -0.496889
A 1 -1000 1.001322 2.884899 -0.659933
-999 1.081918 3.389470 -0.413069
-998 1.168483 3.585312 -0.277902
-997 1.237908 3.439242 -0.299783
-996 1.263452 2.942262 -0.496889
Я новичок в панде, и я пробовал различные вещи.
Я думал, что решение будет:
test.loc['A',:,[-1000:-50]]
И это на самом деле работает, если выбрать моменты времени меньше, чем приблизительно 50 точек данных друг от друга; для большего, однако, первый индекс игнорируется, и он возвращает все значения из первого индекса (который равен -1100). Это меня отличает. Так это выглядит следующим образом (очень хорошо):
In [284]: test.loc['A',:,-1000:-950].head()
Out[284]:
signal dat1 dat2 dat3
condition epoch time
A 0 -1000 0.776851 -0.591070 0.435884
-999 0.908675 -1.042335 0.084967
-998 0.942239 -1.583269 -0.266314
-997 0.901392 -2.146548 -0.602187
-996 0.814778 -2.663253 -0.892899
Но это происходит:
test.loc['A',:,-1000:-900].head()
Out[285]:
signal dat1 dat2 dat3
condition epoch time
A 0 -1100 1.001322 2.884899 -0.659933
-1099 1.081918 3.389470 -0.413069
-1098 1.168483 3.585312 -0.277902
-1097 1.237908 3.439242 -0.299783
-1096 1.263452 2.942262 -0.496889
все, что я делаю не так, или есть другой простая/интуитивная индексация (я попробовал некоторый .ix, slice(), но не успешно), чтобы выбрать все эпохи, но ограничить время?
кстати. это происходит на pandas 18.0 с 20 эпохами и значениями времени от -1100 до 6000 – TNT