我每隔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
看到这些时期应该没有表现。
但是,这不允许我对反映性能的列进行分配。
有什么办法吗?
答案 0 :(得分:0)
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