【发布时间】:2019-07-02 21:23:00
【问题描述】:
UsageDate CustID1 CustID2 .... CustIDn
0 2018-01-01 00:00:00 1.095
1 2018-01-01 01:00:00 1.129
2 2018-01-01 02:00:00 1.165
3 2018-01-01 04:00:00 1.697
.
.
m 2018-31-01 23:00:00 1.835 (m,n)
数据框 (df) 有 m 行和 n 列。 m 是每小时时间序列索引,从每月的第一个小时开始到每月的最后一个小时。 列是几乎 100,000 的客户。 Dataframe 的每个单元格的值是能耗值。
对于每个客户,我需要计算: 1) 每小时使用的平均值 - 所以基本上是一个月中每天的第一个小时,一个月中每天的第二个小时等的平均值。
2) 每位客户的使用情况汇总
3) 前 3 个使用时间 - 对于客户 x,可以是“2018-01-01 01:00:00”, "2018-11-01 05:00:00" "2018-21-01 17:00:00"
4) 后 3 个使用小时 - 与上述类似的解释
5) 每个客户在当月的使用平均值
我的主要问题是如何汇总每个客户和一天中的某个小时或一天中的数据。
为了汇总每位客户的使用情况,我尝试了:
df_temp = pd.DataFrame(columns=["TotalUsage"])
for col in df.columns:
`df_temp[col,"TotalUsage"] = df[col].apply.sum()`
但是,这个和我尝试过的许多版本都没有帮助我解决问题。
请帮助我提供一种方法以及如何考虑此类问题。
此外,由于数据帧很大,如果我们能谈谈计算复杂性以及如何减少计算时间,那将很有帮助。
【问题讨论】:
标签: python pandas dataframe aggregation