将时间范围内的值设置为零
Setting values in a time frame to zero
我有一个 df
DateTimeIndex
(每小时读数)和光照强度。
Time Light
1/2/2017 18:00 31
1/2/2017 19:00 -5
1/2/2017 20:00 NA
......
......
2/2/2017 05:00 NA
2/2/2017 06:00 20
问题是在日落(下午 6 点)到日出(早上 6 点)之后,传感器不工作并且读数不正确。我想将这段时间的任何读数设置为0。
您可以根据这些条件创建掩码并根据它设置值。
hours = (df.index.to_series().dt.hour) # convert DateTimeIndex to hours
mask = (hours > 6) & (hours < 18)
df.loc[~mask, 'Light'] = 0
您应该将 DataTimeIndex
转换为 Series
以访问日期时间方法。
我有一个 df
DateTimeIndex
(每小时读数)和光照强度。
Time Light
1/2/2017 18:00 31
1/2/2017 19:00 -5
1/2/2017 20:00 NA
......
......
2/2/2017 05:00 NA
2/2/2017 06:00 20
问题是在日落(下午 6 点)到日出(早上 6 点)之后,传感器不工作并且读数不正确。我想将这段时间的任何读数设置为0。
您可以根据这些条件创建掩码并根据它设置值。
hours = (df.index.to_series().dt.hour) # convert DateTimeIndex to hours
mask = (hours > 6) & (hours < 18)
df.loc[~mask, 'Light'] = 0
您应该将 DataTimeIndex
转换为 Series
以访问日期时间方法。