熊猫日光变化值



我寻找下降/添加对应于日光的小时。我按如下方式处理,但我只获得日期时间的移位,因为还想要值的移位。

有人有解决方案吗?

df  = pd.DataFrame({'value' : range(10)}, index=pd.date_range(pd.datetime(2014,3,30, 0,  0), freq='H', periods=10))
df  = df.tz_localize(pytz.timezone('UCT'))
dfP = df.tz_convert(pytz.timezone('Europe/Paris'))
>>> df
                           value
2014-03-30 00:00:00+00:00      a
2014-03-30 01:00:00+00:00      b
2014-03-30 02:00:00+00:00      c
2014-03-30 03:00:00+00:00      d
2014-03-30 04:00:00+00:00      e
2014-03-30 05:00:00+00:00      f
2014-03-30 06:00:00+00:00      g
2014-03-30 07:00:00+00:00      h
2014-03-30 08:00:00+00:00      i
2014-03-30 09:00:00+00:00      j
[10 rows x 1 columns]
>>> dfP
                           value
2014-03-30 01:00:00+01:00      a
2014-03-30 03:00:00+02:00      b
2014-03-30 04:00:00+02:00      c
2014-03-30 05:00:00+02:00      d
2014-03-30 06:00:00+02:00      e
2014-03-30 07:00:00+02:00      f
2014-03-30 08:00:00+02:00      g
2014-03-30 09:00:00+02:00      h
2014-03-30 10:00:00+02:00      i
2014-03-30 11:00:00+02:00      j
[10 rows x 1 columns]

我想要dfP是:(而不是上面)

>>> dfP
                           value
2014-03-30 01:00:00+01:00      a
2014-03-30 03:00:00+02:00      c
2014-03-30 04:00:00+02:00      d
2014-03-30 05:00:00+02:00      e
2014-03-30 06:00:00+02:00      f
2014-03-30 07:00:00+02:00      g
2014-03-30 08:00:00+02:00      h
2014-03-30 09:00:00+02:00      i
2014-03-30 10:00:00+02:00      j
2014-03-30 11:00:00+02:00      Nan

其中 a,b,c,d,e,f,g,h,i,j 可以是任何值。

在 value2 中,我需要的结果。

    value   value2
2014-01-01 00:00:00+01:00   0   0
…       
2014-03-29 22:00:00+01:00   2110    2110
2014-03-29 23:00:00+01:00   2111    2111
2014-03-30 00:00:00+01:00   2112    2112
2014-03-30 01:00:00+01:00   2113    2113
2014-03-30 03:00:00+02:00   2114    2115
2014-03-30 04:00:00+02:00   2115    2116   <- shift + 1
…       
2014-10-25 19:00:00+02:00   7146    7147
2014-10-25 20:00:00+02:00   7147    7148
2014-10-25 21:00:00+02:00   7148    7149
2014-10-25 22:00:00+02:00   7149    7150
2014-10-25 23:00:00+02:00   7150    7151
2014-10-26 00:00:00+02:00   7151    7152
2014-10-26 01:00:00+02:00   7152    7153
2014-10-26 02:00:00+02:00   7153    7154
2014-10-26 02:00:00+01:00   7154    7154   <- shift - 1
2014-10-26 03:00:00+01:00   7155    7155
2014-10-26 04:00:00+01:00   7156    7156

使用以下代码: i = 8730 start = pd.datetime(2014,1,1, 0, 0) df = pd。DataFrame({'value' : range(i)}, index=pd.date_range(start, freq='H', periods=i)) df = df.tz_localize('Etc/GMT-1') dfParis = df.tz_convert(pytz.timezone('Europe/Paris'))

此处的值 1 到 8730 必须被视为现实生活中的其他值。

有人有解决方案吗?

相关内容

  • 没有找到相关文章

最新更新