我有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
考虑到这些是不应该有表现的时期。
但是,这不允许我对反映性能的列进行赋值。
有没有办法做到这一点?
发布于 2019-10-25 05:42:39
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]'] = 0https://stackoverflow.com/questions/58548355
复制相似问题