金融数据处理过程中的一些小tip

一、计算某段时间内的最大值,最小值

例如计算data['s_dq_high'] 在过往的 20 天里的最大值,min_periods = 1 表示的是以 1 为单位

data['rolling_20_highest'] = pd.rolling_max(data['s_dq_high'], 20, min_periods = 1)

2、根据日期,得到此日期前(后)的日期

pd.date_range( end ='2019-09-01',periods=10)

  

 如果只需要工作日,则:

pd.date_range( end ='2019-09-01',periods=10,freq='C')   #注意此处的periods=10,表示的是取出的条数是10条

  

 freq参数可选择的范围非常广,不一一列举,在使用的时候参照官方文档

 如果想取出某日到某日之间的工作日数据,可以如下写

tt = dfco.loc[dfco.index.isin(pd.Series(pd.date_range(start='20191007',end='20191014',freq='B')))]

或者如果时间不是索引的话,并且只限定结束时间和日期数量,:

df.loc[df['date'].isin(pd.Series(pd.date_range(periods=5, end='20191018',freq='B')))][['date','f_info_windcode','f_nav_unit']]  

取出从20191007到20191014期间工作日数据

DataFrame中二级索引时,访问一级索引的index时,采用

dt.index.levels[0]   # 其中0就表示访问一级index,1 表示二级index,返回的类型是一个list

  统计某一个枚举值的个数

from collections import Counter
Counter(list(centertradestr['new_cols']))
原文地址:https://www.cnblogs.com/xiaodongsuibi/p/11527358.html