Pandas 根据星期几的时间分组
Pandas groupby time depending on day of week
我有一个 df,其中包含多个列,例如 DateTime、“ToConsumer”和“FromGenerator”。
我想根据星期几总结特定时间范围内 FromGen > ToCons 的所有值。在星期六和星期日,所有值和工作日只应汇总 17:00 和 07:00 之间的值。
因此,到目前为止,我已经创建了 DayOfWeek 列,但还没有设法找出如何根据这些策略进行分组?
非常感谢!
编辑:
我现在创建了“over”列并删除了所有负值:
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'
不幸的是,这并没有像我预期的那样工作...
我设法通过使用
解决了我的问题
df_so.between_time
我有一个 df,其中包含多个列,例如 DateTime、“ToConsumer”和“FromGenerator”。
我想根据星期几总结特定时间范围内 FromGen > ToCons 的所有值。在星期六和星期日,所有值和工作日只应汇总 17:00 和 07:00 之间的值。 因此,到目前为止,我已经创建了 DayOfWeek 列,但还没有设法找出如何根据这些策略进行分组?
非常感谢!
编辑: 我现在创建了“over”列并删除了所有负值:
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'
不幸的是,这并没有像我预期的那样工作...
我设法通过使用
解决了我的问题df_so.between_time