问题描述
我将数据帧从分钟分为每日,每周和每月。重新格式化每日数据帧没有问题,尽管尝试每周做同样的事情很麻烦。这是weekly dataframe,如果有人可以帮助我,那太好了。
我添加了用于重新格式化日常数据帧的代码,因此可能会有所帮助!
我正在使用bokeh进行绘制,而没有datetime格式,则无法按我的意愿格式化轴和hovertools。
先谢谢了。
dfDay1 = dfDay.loc['2014-01-01':'2020-09-31']
dfDay1 = dfDay1.reset_index()
dfDay1['date1'] = pd.to_datetime(dfDay1['date'],format=('%Y/%m/%d'))
dfDay1 = dfDay1.set_index('date')
对于日格式来说效果很好。
解决方法
如果需要将date
之前的/
转换为str[0]
,请使用Series.str.split
;如果/
之后的日期,则使用str[1]
:
df['date1'] = pd.to_datetime(df['week'].str.split('/').str[0])
print (df)
week Open Low High Close Volume \
0 2014-01-07/2014-01-13 58.1500 55.38 58.96 56.0000 324133239
1 2014-01-14/2014-01-20 56.3500 55.96 58.57 56.2500 141255151
2 2014-01-21/2014-01-27 57.8786 51.85 59.31 52.8600 279370121
3 2014-01-28/2014-02-03 53.7700 52.75 63.95 62.4900 447186604
4 2014-02-04/2014-02-10 62.8900 60.45 64.90 63.9100 238316161
.. ... ... ... ... ... ...
347 2020-09-01/2020-09-07 297.4000 271.14 303.90 281.5962 98978386
348 2020-09-08/2020-09-14 275.0000 262.64 281.40 271.0100 109717114
349 2020-09-15/2020-09-21 272.6300 244.13 274.52 248.5800 123816172
350 2020-09-22/2020-09-28 254.3900 245.40 259.98 255.8800 98550687
351 2020-09-29/2020-10-05 258.2530 256.50 268.33 261.3500 81921670
date1
0 2014-01-07
1 2014-01-14
2 2014-01-21
3 2014-01-28
4 2014-02-04
.. ...
347 2020-09-01
348 2020-09-08
349 2020-09-15
350 2020-09-22
351 2020-09-29
[352 rows x 7 columns]