Создать DataFrame
с MultiIndex
, потому что deprecate panel
:
df = pd.read_csv(file, header=[0,1], index_col=[0])
А затем выберите с помощью слайсеров :
idx = pd.IndexSlice
print (df.loc[1, idx['A', '0-3_mon']])
Пример : без имен Multindex:
import pandas as pd
temp=u"""A;A;B;B
0-3_mon;3-6_mon;0-3_mon;3-6_mon
1;10;12;14;18
2;11;15;17;19
3;13;16;21;20"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep=";", header=[0,1])
print (df)
A B
0-3_mon 3-6_mon 0-3_mon 3-6_mon
1 10 12 14 18
2 11 15 17 19
3 13 16 21 20
print (df.columns)
MultiIndex(levels=[['A', 'B'], ['0-3_mon', '3-6_mon']],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]])
idx = pd.IndexSlice
print (df.loc[1, idx['A', '0-3_mon']])
10
Образец с указанными именами MultiIndex:
import pandas as pd
temp=u"""acct_id;A;A;B;B
level;0-3_mon;3-6_mon;0-3_mon;3-6_mon
1;10;12;14;18
2;11;15;17;19
3;13;16;21;20"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep=";", index_col=[0], header=[0,1])
print (df)
acct_id A B
level 0-3_mon 3-6_mon 0-3_mon 3-6_mon
1 10 12 14 18
2 11 15 17 19
3 13 16 21 20
print (df.columns)
MultiIndex(levels=[['A', 'B'], ['0-3_mon', '3-6_mon']],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]],
names=['acct_id', 'level'])
idx = pd.IndexSlice
print (df.loc[1, idx['A', '0-3_mon']])
10