Pandas 熊猫系列按特定时间分组
我希望在天然气日(与天然气交易相关)有效实施熊猫系列分组。 这包括CET时区中早上6点到次日早上6点之间的所有小时/时间戳。 由于夏时制,一年一次的天然气日有23小时,一次有25小时。 我目前的解决方案工作正常(请参见下面的“加油日”功能),但速度非常慢。欢迎提出任何意见Pandas 熊猫系列按特定时间分组,pandas,time-series,pandas-groupby,Pandas,Time Series,Pandas Groupby,我希望在天然气日(与天然气交易相关)有效实施熊猫系列分组。 这包括CET时区中早上6点到次日早上6点之间的所有小时/时间戳。 由于夏时制,一年一次的天然气日有23小时,一次有25小时。 我目前的解决方案工作正常(请参见下面的“加油日”功能),但速度非常慢。欢迎提出任何意见 将熊猫作为pd导入 def至天然气日(盖章): “”“根据加油日(欧洲中部时间6点到6点)设置时间戳和返回日期。” 如果stamp.hour
将熊猫作为pd导入
def至天然气日(盖章):
“”“根据加油日(欧洲中部时间6点到6点)设置时间戳和返回日期。”
如果stamp.hour<6:
日期=stamp.date()-pd.Timedelta(天=1)
其他:
日期=邮票日期()
返回pd.to_日期时间(天)
se=pd.系列(
数据=1。,
索引=pd.日期范围('2020-10-23','2020-10-27',频率='H',时间='CET')[:-1]
)
#这是DST日期前后的预计小时数
se.groupby(to_gas_day).count()
出[107]:
2020-10-22 6
2020-10-23 24
2020-10-24 25
2020-10-25 24
2020-10-26 18
数据类型:int64
这是否等同于您的代码
obj = pd.Series(pd.date_range('2020-10-23','2020-10-27', freq='H', tz='CET')[:-1])
cond = obj.dt.hour < 6
obj2 = np.where(cond,
obj.dt.date - pd.Timedelta(days=1),
obj.dt.date)
obj2 = pd.Series(obj2)
obj3 = obj2.value_counts().sort_index()
print(obj3)
2020-10-22 6
2020-10-23 24
2020-10-24 25
2020-10-25 24
2020-10-26 18
dtype: int64
obj=pd.系列(pd.日期范围('2020-10-23','2020-10-27',频率='H',时间='CET')[:-1])
cond=obj.dt.hour<6
obj2=np.式中(条件,
obj.dt.date-pd.Timedelta(天数=1),
目标日期)
obj2=pd.系列(obj2)
obj3=obj2.value_counts().sort_index()
打印(obj3)
2020-10-22 6
2020-10-23 24
2020-10-24 25
2020-10-25 24
2020-10-26 18
数据类型:int64