我是熊猫的新手,如果这是一个可能的bug,我正在寻求建议?
具有非唯一日期时间索引的Dataframe。Col1是组变量,col2是值。
我希望将每小时值重新采样为年,并按组变量分组。我使用以下命令执行此操作
df_resample = df.groupby(' col1 ').resample('Y').mean()可以很好地工作,并创建col1和datetimeindek的多重索引,其中col1现在不是数据帧中的列
但是,如果我将mean()更改为max(),情况就不是这样了。则col1是多索引的一部分,但是该列仍然存在于数据帧中。这不是个bug吗?
对不起,我不知道如何在这篇文章中以数据帧的形式呈现虚拟数据?
编辑:代码示例:
from datetime import datetime, timedelta
import pandas as pd
data = {'category':['A', 'B', 'C'],
'value_hour':[1,2,3]}
days = pd.date_range(datetime.now(), datetime.now() + timedelta(2), freq='D')
df = pd.DataFrame(data, index=days)
df_mean = df.groupby('category').resample('Y').mean()
df_max = df.groupby('category').resample('Y').max()
print(df_mean, df_max)
category value_hour
A 2021-12-31 1.0
B 2021-12-31 2.0
C 2021-12-31 3.0
category category value_hour
A 2021-12-31 A 1
B 2021-12-31 B 2
C 2021-12-31 C 3尝试从df_max中删除category列会得到一个KeyError
df_max.drop('category')
File "C:\Users\mav\Anaconda3\envs\EWDpy\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 'category'发布于 2021-09-29 22:46:06
关于类别:问题是您试图删除“KeyError”行,而不是列。在使用drop删除列时,应添加axis =1,如以下代码所示:
df_max.drop('category', axis=1)axis=1表示您正在查看列
https://stackoverflow.com/questions/69379166
复制相似问题