Я решил начать работу с пандами, так что теперь я имею дело с мультииндексированными фреймами данных. Работая с индексированием и нарезкой, я заметил следующее, что не могу объяснить:
import pandas as pd
import numpy as np
# generate a MultiIndexed DataFrame with more or less random data
index = pd.MultiIndex.from_product([[2013, 2014], [1, 2]],
names=['year', 'visit'])
columns = pd.MultiIndex.from_product([['Bob', 'Guido', 'Sue'], ['HR', 'Temp']],
names=['subject', 'type'])
data = np.round(np.random.randn(4, 6), 1)
data[:, ::2] *= 10
data += 37
health_data = pd.DataFrame(data, index=index, columns=columns)
health_data
>>>
subject Bob Guido Sue
type HR Temp HR Temp HR Temp
year visit
2013 1 42.0 37.4 34.0 37.2 41.0 36.2
2 51.0 36.5 34.0 35.7 38.0 37.2
2014 1 52.0 37.2 32.0 37.9 28.0 39.3
2 40.0 36.3 68.0 36.3 55.0 38.3
# Now why is this even working?
>>> health_data.loc[[2014, 0, 0, 100]]
subject Bob Guido Sue
type HR Temp HR Temp HR Temp
year visit
2014 1 52.0 37.2 32.0 37.9 28.0 39.3
2 40.0 36.3 68.0 36.3 55.0 38.3
Я начал с health_data.loc[[2014]]
, который дает тот же результат, а игра вокруг дает этот странный результат. Что это за линия и почему она работает?