股市每天都在产生新的数据,如果每次都从头读,不是不可以,但是会无谓地耗费很多时间。向已有的文件添加新产生的数据可以很好地解决这个问题。
# 向已有的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 合并数据集