Анализ данных из нескольких файлов .txt в pandas - PullRequest
1 голос
/ 13 февраля 2020

У меня более 1000 текстовых файлов. У каждого есть даты (которые я сделал индекс) и цены на акции (которые являются столбец 0). Я создал код для поиска скользящей средней цены отдельного файла и скользящей разницы между ценой и скользящей средней. Я хотел бы создать код, чтобы сделать это для каждого файла. Я должен загрузить их в группы, потому что он использует слишком много памяти, чтобы загрузить их сразу.

Я думаю, мне пришлось бы использовать для l oop, чтобы перебирать файлы и находить метрики для каждого. Но как бы я это сделал? Как я могу загрузить все файлы в группу и, скажем, сгруппировать их в одну переменную, а затем создать al oop, чтобы найти скользящее среднее и разницу от цены для каждого?

Редактировать: я использую numpy, pandas и matplotlib. Я также хотел бы найти акции, у которых наибольшее отличие от скользящей средней.

Любая помощь будет принята с благодарностью

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Если вы хотите просто перебрать все ваши входные файлы в заданной папке, вы можете попробовать os.listdir(), чтобы получить список имен файлов, который вы затем сможете обрабатывать последовательно. Если ваши файлы распределены по слоям папки, вы можете использовать os.walk() для обхода каталогов. Вы можете найти информацию об этих методах здесь: https://docs.python.org/3/library/os.html

0 голосов
/ 13 февраля 2020

Насколько велики эти 1000 файлов? Если они по пару МБ каждый, просто угадайте, объедините все файлы в один файл, и вы сможете делать с ним все, что захотите.

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...