tushare中的get_k_data的去重問(wèn)題

由于獲取數(shù)據(jù)的時(shí)限性,在日線以下的數(shù)據(jù),比如小時(shí)線只能獲取一定時(shí)間范圍,超過(guò)該時(shí)間就無(wú)法再獲取了。根據(jù)實(shí)測(cè),60分鐘線大約能保存6個(gè)月的數(shù)據(jù),5分鐘線約保存15天數(shù)據(jù),因此在實(shí)際數(shù)據(jù)處理過(guò)程中,需要定期保存。

每次處理需要讀取舊數(shù)據(jù)df1,再讀取新數(shù)據(jù)df2,df1和df2的數(shù)據(jù)必然會(huì)有重復(fù),因此需要合并后的數(shù)據(jù)去重后進(jìn)行保存。

dataframe中用于去重的函數(shù)為drop_duplicates() ,默認(rèn)整行數(shù)據(jù)均相同才去重,也可以指定某索引進(jìn)行單獨(dú)去重。

    #獲取第一個(gè)df
    df1 = ts.get_k_data('510050', start='2014-02-21',end='2014-04-01',ktype='D',autype='qfq')
    #重構(gòu)索引
    df1.set_index(['date'], inplace = True)   
    #獲取第二個(gè)df
    df2 = ts.get_k_data('510050', start='2014-01-01',end='2014-04-01',ktype='D',autype='qfq')
    #重構(gòu)索引
    df2.set_index(['date'], inplace = True) 
    #兩個(gè)dataframe合并
    df_new=pd.concat([df1, df2])
    #檢查去重
    df_new = df_new.drop_duplicates()  
    #按照索引[日期]進(jìn)行排序,升序
    print(df_new.sort_index(ascending = True))

小坑一個(gè):

實(shí)際去重操作會(huì)產(chǎn)生很大的問(wèn)題,因?yàn)檎G闆r下df1是讀取本地csv文件,df2是使用get_k_data獲取的數(shù)據(jù),這兩者的去重?zé)o法實(shí)現(xiàn),推斷是數(shù)據(jù)格式的問(wèn)題,這個(gè)問(wèn)題至今無(wú)法解決,只能采用變通的方法,即df2的實(shí)時(shí)數(shù)據(jù)讀取后保存再讀取,以便和df1的數(shù)據(jù)格式保持一致,這樣才能進(jìn)行去重操作,雖然系統(tǒng)開銷比較大,但也只能如此了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容