python - 在 GroupBy 之后 Python Pandas DataFrame 困难变平
问题描述
我有一个包含 3 列的数据框,日期、时间和使用情况。时间间隔为 15 分钟(某些间隔可能/将丢失)。日期列列出了当月的每一天(可能超过一个月)。
目标是按每月每天按小时汇总使用值。我能够通过 groupby 完成此操作,但它创建了一个多索引系列。当我尝试将“reset_index()”添加到 groupby 的末尾时,我收到一个错误,因为我使用同一列两次(每月一次,每天一次)。我有一种感觉,我需要为我的列加上别名,这样我就可以展平多索引,但我不确定如何。
*注意我知道我可以只为一天和一小时创建“帮助”列并在我的 groupby 中使用这些列,但我希望不必这样做。
import pandas as pd
df = pd.read_csv('Interval Data', sep=';')
df.columns = df.columns.str.replace(' ', '')
df = df[['END_TIME', 'USAGE_DATE', 'USAGE']]
df['END_TIME'] = pd.to_datetime(df['END_TIME'])
df['USAGE_DATE'] = pd.to_datetime(df['USAGE_DATE'])
grp_df = df.groupby([df.USAGE_DATE.dt.month, df.USAGE_DATE.dt.day, df.END_TIME.dt.hour])['USAGE'].sum()
print(grp_df.head())
解决方案
您可以重命名您的多索引。尝试:
grp_df.index.rename(['month1', 'day1', 'hour2'], inplace = True)
参考:https ://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.MultiIndex.rename.html
推荐阅读
- c - 链接 C 代码时如何判断符号的定义位置
- javascript - 如何将 handleSubmit 函数与另一个文件分开?
- sql - SQL Server 升级后 EF Core 空间数据不起作用
- javascript - 将 JSON 字符串反序列化为 JavaScript 日期
- javascript - WebGL 片段着色器颜色未生效
- python - HTTP 错误 502:使用 Sklearn 时连接超时
- javascript - 谷歌地图标记可点击区域太大
- validation - 使用 veraPDF 验证 PDF 文件时出现异常
- javascript - 如何让 testcafe 尊重 `
` 标签 - python - 在列之间添加空格