索引多级索引数据帧

时间:2018-08-05 03:56:29

标签: python dataframe multi-index

https://github.com/AngularianUK/parknow-pig-latin/blob/master/src/index.html

mydf = pd.DataFrame({'dts':['1/1/2000','1/1/2000','1/1/2000','1/2/2000', '1/3/2000', '1/3/2000'], 'product':['A', 'B', 'A','A', 'A','B'], 'value':[1,2,2,3,6,1]}) a =mydf.groupby(['dts','product']).sum() a Out[1]: value dts product 1/1/2000 A 3 B 2 1/2/2000 A 3 1/3/2000 A 6 B 1 给出第一行。

a.loc[('1/1/2000','A'),]

但是为什么 a.loc[('1/1/2000','A'),] Out[2]: value 3 Name: (1/1/2000, A), dtype: int64 也为B提供第二行?唯一的区别是括号

a.loc[['1/1/2000','A'],]

1 个答案:

答案 0 :(得分:0)

将“ A”替换为完全不同的内容:

a.loc[['1/1/2000','XYZZZ'],]

                  value
dts      product       
1/1/2000 A            3
         B            2

现在,用元组重复一次:

a.loc[('1/1/2000','XYZZZ'),]

这就是你得到的:

KeyError: ('1/1/2000', 'XYZZZ')

当指定为列表时,熊猫将仅尝试在第一级建立索引。在第一级中显示“ 1/1/2000”,并返回与之关联的所有记录。

当指定为元组时,它将假定所有级别的元组值,而当找不到它时,将引发KeyError。找到后,仅返回该行。