我有1000多个文本文件。每个都有日期(我已经建立了索引)和股票价格(它们是第0列)。我创建了代码,以查找单个文件的价格的移动平均线以及价格和移动平均线之间的滚动差额。我想创建代码为每个文件执行此操作。我必须成组上传它们,因为它占用了太多内存,无法一次上传它们。
我想我将不得不使用for循环来遍历文件并找到每个文件的指标。但是我该怎么办呢?如何将所有文件上传到一个组中,并说将它们分组为一个变量,然后创建一个循环以查找移动平均线和每个文件的价格差异?
编辑:我正在使用numpy,pandas和matplotlib。我还希望能够找到与移动平均线相差最大的股票。
任何帮助将不胜感激
如果您只是想遍历给定文件夹中的所有输入文件,则可能需要尝试os.listdir()
来获取文件名列表,然后可以依次处理。如果文件分散在文件夹的各个层上,则可以使用os.walk()
遍历目录。您可以在以下位置找到有关这些方法的信息:https://docs.python.org/3/library/os.html
这1000个文件有多大?如果每个文件只有几MB,只需猜测一下,将所有文件合并为一个文件,就可以使用它进行任何操作。
import pandas as pd
import csv
import glob
import os
#os.chdir("C:\\Users\\Excel\\Desktop\\test\\")
results = pd.DataFrame([])
filelist = glob.glob("C:\\your_path\\*.csv")
#dfList=[]
for filename in filelist:
print(filename)
namedf = pd.read_csv(filename, skiprows=0, index_col=0)
results = results.append(namedf)
results.to_csv('C:\\your_path\\CombinedFile.csv')