嗨,我正在构建一个工具,从YFinance下载股票数据,我想下载一次历史数据,将其保存到目录中的VS文件,然后每天只添加最后一个交易日(一行)并重新保存它.问题是CSV文件是从头开始覆盖的,所以如果我只提供要下载的最后一个交易日,那将是我将结束的每个符号的所有行. 我使用的代码分为两部分.首先在Pandas中创建数据框,然后将其与我的所有新函数一起保存,然后从保存它的目录中获取我想要的任何其他项目中的数据框. 我还有第二个问题,关于这是不是使用CSV文件和PANDA数据帧而不是SQLITE数据库的良好实践,以及不同方法之间的优缺点.
第1部分 创建目录和CSV文件
import yfinance as yf
import os
import pandas as pd
with open(r'C:\zPythonFilesDir\yfinance\symbolstest.csv') as f:
lines = f.read().splitlines()
#print(lines)
for symbol in lines:
print(symbol)
data = yf.download(symbol, start="2023-07-01", end="2023-07-30")
#print(data)
data.to_csv(r'C:\zPythonFilesDir\yfinance\datasetstest\{}.csv'.format(symbol))
for filename in os.listdir(r'C:\zPythonFilesDir\yfinance\datasetstest'):
#print(filename)
symbol = filename.split(".")[0]
print(symbol)
df = pd.read_csv(r'C:\zPythonFilesDir\yfinance\datasetstest/{}'.format(filename))
# new columns and functions here
x = 2 * round(df['High'],2)
df['new_val'] = x
# write new datasets with functions columns in different directory
df.to_csv(r'C:\zPythonFilesDir\yfinance\newdatasetstest\{}.csv'.format(symbol))
print(df)
第二部分 从CSV文件中获取数据
import os
import pandas as pd
for filename in os.listdir(r'C:\zPythonFilesDir\yfinance\newdatasetstest'):
#print(filename)
symbol = filename.split(".")[0]
print(symbol)
df1= pd.read_csv(r'C:\zPythonFilesDir\yfinance\newdatasetstest/{}'.format(filename))
print(df1)
df2 = pd.read_csv(r'C:\zPythonFilesDir\yfinance\newdatasetstest/AAPL.csv')
print(df2)
Symbstest.csv包含感兴趣的符号