由于獲取數(shù)據(jù)的時限性荞下,在日線以下的數(shù)據(jù)枪萄,比如小時線只能獲取一定時間范圍隐岛,超過該時間就無法再獲取了。根據(jù)實測瓷翻,60分鐘線大約能保存6個月的數(shù)據(jù)聚凹,5分鐘線約保存15天數(shù)據(jù),因此在實際數(shù)據(jù)處理過程中逻悠,需要定期保存元践。
每次處理需要讀取舊數(shù)據(jù)df1韭脊,再讀取新數(shù)據(jù)df2童谒,df1和df2的數(shù)據(jù)必然會有重復,因此需要合并后的數(shù)據(jù)去重后進行保存沪羔。
dataframe中用于去重的函數(shù)為drop_duplicates() 饥伊,默認整行數(shù)據(jù)均相同才去重,也可以指定某索引進行單獨去重蔫饰。
#獲取第一個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))
小坑一個:
實際去重操作會產(chǎn)生很大的問題,因為正常情況下df1是讀取本地csv文件篓吁,df2是使用get_k_data獲取的數(shù)據(jù)茫因,這兩者的去重無法實現(xiàn),推斷是數(shù)據(jù)格式的問題杖剪,這個問題至今無法解決冻押,只能采用變通的方法驰贷,即df2的實時數(shù)據(jù)讀取后保存再讀取,以便和df1的數(shù)據(jù)格式保持一致洛巢,這樣才能進行去重操作括袒,雖然系統(tǒng)開銷比較大,但也只能如此了