日期时间重新格式化每周列

问题描述

我将数据帧从分钟分为每日,每周和每月。重新格式化每日数据帧没有问题,尽管尝试每周做同样的事情很麻烦。这是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]