Pandas分组聚合后访问Date列触发KeyError问题咨询
Pandas分组聚合后访问Date列触发KeyError问题咨询
你好呀!我看到你在使用Pandas做分组聚合后,尝试访问Date列时碰到了KeyError: 'Date'的问题,咱们来一步步理清原因和解决办法:
问题根源
当你执行df.groupby('Date').agg({'Data_Value':np.max})这行代码时,Date列已经被设置成了分组索引,不再是DataFrame里的普通列了。所以你直接用max1['Date']去访问,自然会找不到这个列,触发KeyError。
两种可行解决方案
你可以根据后续的使用需求,选下面其中一种方法:
- 直接访问索引(推荐)
既然Date现在是索引,你可以通过.index属性直接获取它的取值:
print(max1.index) # 如果需要转成列表形式,还可以这么写: print(max1.index.to_list())
- 分组时保留Date为普通列
要是你更习惯把Date当作普通列来操作,可以在groupby的时候加上as_index=False参数:
max1 = df.groupby('Date', as_index=False).agg({'Data_Value':np.max}) print(max1['Date']) # 现在就能正常访问Date列啦
第一种方法更节省内存(索引的存储开销比列小),第二种更贴合你原本的列访问习惯,按需选择就好~
备注:内容来源于stack exchange,提问作者Mahsa
相关产品推荐
相关产品推荐

