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
但是为什么a.loc[['1/1/2000','A'],]
也给B第二行呢?唯一的区别是括号
a.loc[['1/1/2000','A'],]
Out[3]:
value
dts product
1/1/2000 A 3
B 2
将“A”替换为完全不同的内容:
现在,对元组重复以下步骤:
这就是你得到的:
当指定为列表时,pandas将仅尝试在第一级建立索引。““1/1/2000”出现在第一级,并返回与之相关的所有记录
当指定为元组时,它将假定所有级别的元组值,当找不到元组值时,将引发KeyError。当它找到它时,只返回该行
相关问题 更多 >
编程相关推荐