美文网首页
tushare中的get_k_data的去重问题

tushare中的get_k_data的去重问题

作者: GeorgeV | 来源:发表于2018-04-26 20:38 被阅读0次

由于获取数据的时限性,在日线以下的数据,比如小时线只能获取一定时间范围,超过该时间就无法再获取了。根据实测,60分钟线大约能保存6个月的数据,5分钟线约保存15天数据,因此在实际数据处理过程中,需要定期保存。

每次处理需要读取旧数据df1,再读取新数据df2,df1和df2的数据必然会有重复,因此需要合并后的数据去重后进行保存。

dataframe中用于去重的函数为drop_duplicates() ,默认整行数据均相同才去重,也可以指定某索引进行单独去重。

    #获取第一个df
    df1 = ts.get_k_data('510050', start='2014-02-21',end='2014-04-01',ktype='D',autype='qfq')
    #重构索引
    df1.set_index(['date'], inplace = True)   
    #获取第二个df
    df2 = ts.get_k_data('510050', start='2014-01-01',end='2014-04-01',ktype='D',autype='qfq')
    #重构索引
    df2.set_index(['date'], inplace = True) 
    #两个dataframe合并
    df_new=pd.concat([df1, df2])
    #检查去重
    df_new = df_new.drop_duplicates()  
    #按照索引[日期]进行排序,升序
    print(df_new.sort_index(ascending = True))

小坑一个:

实际去重操作会产生很大的问题,因为正常情况下df1是读取本地csv文件,df2是使用get_k_data获取的数据,这两者的去重无法实现,推断是数据格式的问题,这个问题至今无法解决,只能采用变通的方法,即df2的实时数据读取后保存再读取,以便和df1的数据格式保持一致,这样才能进行去重操作,虽然系统开销比较大,但也只能如此了

相关文章

网友评论

      本文标题:tushare中的get_k_data的去重问题

      本文链接:https://www.haomeiwen.com/subject/vqnmlftx.html