Pandas时间序列

1. 生成一段时间范围:

pd.date_range(Start=None, End=None, periods=None, freq='D'

start, end, 和 freq配合能够生成Start和End范围内以频率freq的一组时间索引

start, periods和 freq配合能够生产从start开始的频率为freq的periods个时间索引

返回类型:pandas.core.indexes.datetimes.DatetimeIndex

1 import pandas as pd
2 datetime=pd.date_range(start='2020-1-1',end='2020-8-15',freq='10D')
3 print(datetime)

结果:

DatetimeIndex(['2020-01-01', '2020-01-11', '2020-01-21', '2020-01-31',
               '2020-02-10', '2020-02-20', '2020-03-01', '2020-03-11',
               '2020-03-21', '2020-03-31', '2020-04-10', '2020-04-20',
               '2020-04-30', '2020-05-10', '2020-05-20', '2020-05-30',
               '2020-06-09', '2020-06-19', '2020-06-29', '2020-07-09',
               '2020-07-19', '2020-07-29', '2020-08-08'],
              dtype='datetime64[ns]', freq='10D')

BM - 每个月最后一个工作日

1 import pandas as pd
2 datetime=pd.date_range(start='2020-1-1',end='2020-8-15',freq='BM')
3 print(datetime)

结果:

DatetimeIndex(['2020-01-31', '2020-02-28', '2020-03-31', '2020-04-30',
               '2020-05-29', '2020-06-30', '2020-07-31'],
              dtype='datetime64[ns]', freq='BM')

BMS - 每月第一个工作日

1 import pandas as pd
2 datetime=pd.date_range(start='2020-1-1',end='2020-8-15',freq='BMS')
3 print(datetime)

结果:

DatetimeIndex(['2020-01-01', '2020-02-03', '2020-03-02', '2020-04-01',
               '2020-05-01', '2020-06-01', '2020-07-01', '2020-08-03'],
              dtype='datetime64[ns]', freq='BMS')

 使用periods= 

1 import pandas as pd
2 datetime=pd.date_range(start='2020-1-1',periods=10,freq='BM')
3 print(datetime)

结果:

DatetimeIndex(['2020-01-31', '2020-02-28', '2020-03-31', '2020-04-30',
               '2020-05-29', '2020-06-30', '2020-07-31', '2020-08-31',
               '2020-09-30', '2020-10-30'],
              dtype='datetime64[ns]', freq='BM')

 

D              Day                       每日日历
B              BusinessDay               每工作日
H              Hour                      每小时
T or min       Minutes                   每分钟
S              Second                    每秒
L or ms        Milli                     每毫秒
U              Micro                     每微秒
M              MonthEnd                  每月最后一个日历日
BM             BusinessMonthEnd          每月最后一个工作日
MS             MonthBegin                每月第一个日历日
BMS            BusinessMonthBegin        每月第一个工作日

2. 使用时间周期产生时间序列

1 import pandas as pd
2 import numpy as np
3 datetime=pd.date_range(start='2020-1-1',periods=10,freq='BM')
4 dfs=pd.DataFrame(np.random.rand(10),index=datetime)
5
dfs.columns=['rand']
6 print(dfs)

结果:

               rand
2020-01-31 0.063098
2020-02-28 0.507646
2020-03-31 0.201181
2020-04-30 0.937127
2020-05-29 0.868136
2020-06-30 0.418600
2020-07-31 0.404452
2020-08-31 0.154341
2020-09-30 0.107054
2020-10-30 0.327396

3. 将DataFrame中的时间字符串转换成时间戳(timeStamp)

dfs['sdate']=pd.to_datetime(dfs['sdate'],format='')

       sdate   scode  topen  thigh   tlow  tclose
0 2020-06-23  600000  10.51  10.57  10.47   10.48
1 2020-06-22  600000  10.57  10.66  10.53   10.55
2 2020-06-19  600000  10.56  10.68  10.50   10.61
3 2020-06-18  600000  10.42  10.57  10.39   10.50
4 2020-06-17  600000  10.44  10.51  10.43   10.47

 

posted @ 2020-08-15 09:29  yehaita  阅读(289)  评论(0)    收藏  举报