中文 lda数据预处理_量化数据预处理-中文日期(含)转英文日期

0afa7f9df4c7500690bd5a796630f614.png

1.引入

时间是pandas数据的主要索引。中文网站上下载的数据含有中文日期,其中包含年月日。如下图所示:

22ab6cca1c8535e2ce11fe3e14e601d0.png

沪深300指数的数据含有中文,需要处理成python的 datetime格式才能放入回测框架中. 方法有很多,关键如何优雅的使用pythonic的完成转换,需要考虑。

2.正则表达式提取年月日信息+map函数

用正则表达式提取年月日信息,然后改写成英文格式

def 

使用map function对索引数据里面的中文日期一一处理。

假设数据块存放在dataframe df 中。 df.index.values极为需要转换的日期。使用map函数实现数据间的映射。

dates = list(df.index.values)
dates = list(map(date_transder, dates))

3.完整代码

import re
import pandas as pd
import os

def date_transder(my_str ):
    pattern = re.compile('(d+)D(d+)D(d+)')
    dd = pattern.findall(my_str)
    date_strr = dd[0][2]+'/'+dd[0][1]+'/'+dd[0][0]
    return date_strr

path1 = os.path.abspath('.')
csv_dir = 'data_csv'
csv_dir = os.path.join(path1, csv_dir)
s='hs300'
df = pd.read_csv(
                os.path.join(csv_dir, '%s.csv' % s),
                header=0, index_col=0
            )
dates = list(df.index.values)
dates = list(map(date_transder, dates))
df = df.reset_index()
df['date'] = dates
df = df.set_index('date')
df = df.sort_index()
df.to_csv('hs300.csv')

4. 最终结果

重新索引排序过后的数据如下图。

沪深300index 数据下载地址:

https:// cn.investing.com/indice s/csi300-historical-data

d0845b7f609ab6255ede37c8cfe713ad.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值