Pandas日光变换值

2024-09-29 03:24:40 发布

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

我寻找与白天相对应的时间。我按如下方式处理,但我只获得datetime上的shift,因为还需要值的移位。在

有人能解决这个问题吗?在

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是:(而不是上面的)

^{2}$

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


Tags: columnsdfdatetimeshiftvalue方式时间range
1条回答
网友
1楼 · 发布于 2024-09-29 03:24:40

这里是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 开始=pd.日期时间(2014,1,1,0,0) df=pd数据帧({'value':范围(i)},索引=pd.date U范围(开始,freq='H',周期=i) df=df.tz_本地化('Etc/GMT-1') dfParis=第df.tz_转换(pytz.时区(“欧洲/巴黎”)

这里的值1到8730必须被视为真实生活中的其他值。在

有人有办法吗?在

相关问题 更多 >