• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

nunca

但行好事 莫问前程
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

金融数据处理过程中的一些小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']))

 

既然无论如何时间都会过去,为什么不选择做些有意义的事情呢

posted on 2019-09-16 16:19  乐晓东随笔  阅读(328)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3