股市每天都在產生新的數據,如果每次都從頭讀,不是不可以,但是會無謂地耗費很多時間。向已有的文件添加新產生的數據可以很好地解決這個問題。
# 向已有的csv文件添加新的股票數據
import pandas as pd
import tushare as ts
import datetime as dt
from pandas import DataFrame
# 讀入已有的數據
df = pd.read_csv('sh600519', index_col = 'date',
parse_dates=['date'])[['open','close','high','low','volume','code']]
# 新數據從哪天開始讀(最後一天加1天)
newdt = df.index[-1] + dt.timedelta(days=1)
# 讀新的數據,直接使用原有的股票代碼
df1 = ts.get_k_data(df.code[0], newdt.strftime("%Y-%m-%d"))
# 判斷是否讀到了新數據
if (df1.size > 0):
df1['date'] = pd.to_datetime(df1['date']) # 把字符格式的日期轉爲日期對象
df1.set_index('date', inplace = True) # 設爲索引,以保持與原有數據格式的統一
# 將新數據合併到已有的數據中
df = df.append(df1)
# 保存原有的和新讀到的完整數據
df.to_csv('sh600519')
else:
print("沒有新數據")
致謝:
https://www.jianshu.com/p/4ece5843d383 日期字段轉爲索引
https://www.cnblogs.com/avivi/p/10813247.html 合併數據集