熊猫分组时间取决于星期几

时间:2021-05-03 11:57:13

标签: python pandas pandas-groupby python-datetime

我有一个 df,其中包含多个列,例如 DateTime、“ToConsumer”和“FromGenerator”。

我想总结在特定时间范围内 FromGen > ToCons 的所有值,具体取决于星期几。在 sat-sun 上,所有值和工作日只应汇总 17:00 和 07:00 之间的值。 因此,到目前为止,我已经创建了 DayOfWeek 列,但还没有设法找出如何根据这些策略进行分组?

非常感谢!

编辑: 我现在创建了“结束”列并通过以下方式删除了所有负值:

df= df[df.select_dtypes(include=[np.number]).ge(0).all(1)]

现在我的 df 看起来像:

df.dtypes
df.dtypes
DateTime          datetime64[ns, Europe/Berlin]
DevWork                                 float64
FromBatToCons                           float64
FromGenToBat                            float64
FromGenToCons                           float64
FromGenToGrid                           float64
FromGridToCons                          float64
FromGrid                                float64
StateOfCharge                           float64
ToCons                                  float64
FromGen                                 float64
DayOfWeek                                 int64
over                                    float64

所以现在我“只需要”对这些值求和 - 我的想法是将周末和工作日的数据分成两个子集,然后消除所有我不需要的时间:

df_weekend = df[df["DayOfWeek"] > 4]
df_work = df[df["DayOfWeek"] < 5]

df_weekend = df_weekend.loc[(df_weekend['DateTime'] <= '7:00:00'
                    & df_weekend['DateTime'] >= '17:00:00')]

不幸的是,这并不像我预期的那样工作: 不支持 & 的操作数类型:'str' 和 'DatetimeArray'

不幸的是,这不像我预期的那样工作......

1 个答案:

答案 0 :(得分:0)

我设法通过使用来解决我的问题

df_so.between_time