将一年中特定时间段的数据更改为零

2024-09-30 22:11:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有太阳能性能数据,间隔5秒,跨越一整年。问题是数据反映了夜间的表现。我想把这些值都改为零

我试过使用:

data.between_time('00:00:00','06:11:00')['SYSTEM MPPT PV Power [W]']) = 0

以及

data.between_time('17:00:00','23:59:55')['SYSTEM MPPT PV Power [W]']) = 0

以及

data.at_time('00:00:00')['SYSTEM MPPT PV Power [W]']) = 0

因为这是不应该有任何表现的时期

但是,这不允许我对反映性能的列进行赋值

有什么办法吗


Tags: 数据data间隔timebetween性能systemat
1条回答
网友
1楼 · 发布于 2024-09-30 22:11:26

pandas.DataFrame.between_times返回时间之间的行(假设数据帧有一个datetimeindex),不选择它们。所以赋值运算符不起作用

假设您的数据帧有一个datetimeindex(它应该有,因为您使用的是between_times),您可以使用between_times来查找您想要有0的索引,并在下面的行中进行赋值:

zeroidx = data.between_time('00:00:00','06:11:00').index.\
         append([data.between_time('17:00:00','23:59:55').index, \
         data.at_time('00:00:00').index])

data.loc[zeroidx, 'SYSTEM MPPT PV Power [W]'] = 0

相关问题 更多 >