Мультииндексный запрос к фрейму данных - PullRequest
0 голосов
/ 08 июня 2018

Я ищу эффективный способ запроса мультииндексного фрейма данных.

Индекс (дата, метка)

Например, как я могу запросить все записи определенной метки

Вот структура ---> Ссылка на изображение

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете взять поперечное сечение ваших данных, используя "xs", вы также должны указать уровень индекса (для вас это, вероятно, level = 1), и они имеют ключевое значение.Увидеть ниже.

import pandas as pd
import numpy as np

# build the milti-indexed dataframe
index1 =  list('ABC')
index2 = np.arange(5)
mli = pd.MultiIndex.from_product([index1, index2])
df = pd.DataFrame(index=mli, columns=list('xyz'), data = np.random.randint(0,10,(15,3))

>>> df
    Out[9]:
    ...:      x  y  z
    ...: A 0  7  9  1
    ...:   1  9  0  9
    ...:   2  2  0  7
    ...:   3  5  2  5
    ...:   4  3  4  5
    ...: B 0  3  9  9
    ...:   1  7  0  2
    ...:   2  6  9  2
    ...:   3  8  1  0
    ...:   4  7  7  5
    ...: C 0  9  1  1
    ...:   1  7  5  7
    ...:   2  5  6  9
    ...:   3  5  0  1
    ...:   4  3  4  0

# slice out all values in column "x" that have an index value=='A' in the first level of the index (i.e. level=0)
>>>df.xs(level=0, key='A').x
    ...: Out[10]:
    ...: 0    7
    ...: 1    9
    ...: 2    2
    ...: 3    5
    ...: 4    3
    ...: Name: x, dtype: int64
    ...:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...