Модули данных MultiIndex очень мощные, но лично я думаю, что на них недостаточно (четких) документов, особенно для различного типа нарезки ... Вот мой вопрос:
Как нарезать многоиндексированные данные только на одном уровне со списком меток? Пожалуйста, помогите мне, если у вас есть решение ( без сброса индексов и преобразования данных в одноуровневый индекс! Что очевидно и не эффективно )
Например, у нас есть следующий фрейм данных:
import pandas as pd
import numpy as np
df = pd.DataFrame(index=range(10))
df['id'] = pd.Series(range(10,20))
df['name'] = [f'name_{id}' for id in range(10,20)]
df['price'] = np.random.rand(df.index.size)
df['date'] = pd.date_range('20200310', '20200319')
df = df.set_index(['id', 'date'])
df
Нарезка на одну метку работает очень хорошо:
df.xs('2020-03-10', level='date', drop_level=False)
Но как мы можем нарезать список меток на этом уровне?
df.xs(('2020-03-10', '2020-03-11', '2020-03-12'), level='date', drop_level=False)
Это приводит к исключению :
Однако Python do c говорит, что параметр "key" также может быть кортежем:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.xs.html