我这里的文件路径如果是单个文件路径是没有问题的,但在使用了symbol{[i]}后出了问题,这里的symbol是一个有四千多个股票代码的列表
这样改,将文件路径改成自己的路径,从原数据表最后一行读取日期后进行处理,经测试,能在所有表后添加原表数据中最后一天以来的所有数据。你测试一下,看是不是希望得到的结果。
import akshare as ak
import pandas as pd
import datetime
symbol=['sz000028','sh600800','sh600000']
for i in range(len(symbol)):
df=pd.read_csv(f'{symbol[i]}.csv')
newdt = pd.to_datetime(df.iloc[-1, 0])+datetime.timedelta(days=1)
newdt=newdt.strftime('%Y%m%d')
with open(f'{symbol[i]}.csv', 'a+', encoding='utf-8') as f:
df1=ak.stock_zh_a_daily(symbol[i],adjust="qfq",start_date=newdt).reset_index()
df2=df1[['date','open','high','low','close','volume']]
df2=df2.astype(str)
for i,row in df2.iterrows():
f.write(','.join(row.tolist())+'\n')
read_csv()中字符串前要加f
文件路径动态生成,根据条件判断用那个路径。
parse_dates
指定某些列为时间类型,这个参数一般搭配下面的date_parser使用。
date_parser
是用来配合parse_dates参数的,因为有的列虽然是日期,但没办法直接转化,需要我们指定一个解析格式:
<strong><strong>from</strong></strong> datetime <strong><strong>import</strong></strong> datetime
pd.read_csv('girl.csv', sep="\t", parse_dates=["date"], date_parser=<strong><strong>lambda</strong></strong> x: datetime.strptime(x, "%Y年%m月%d日"))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y