Объединить столбцы CSV-файла и столбцы имени - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь объединить несколько файлов CSV для данных ETF.Эти CSV-файлы имеют следующую структуру данных.

           Date     Open   High    Low  Close  Volume
0      31/12/2018  16.00  16.22  15.83  16.22  113550
1      28/12/2018  16.59  16.60  16.22  16.22  196076
2      27/12/2018  17.04  17.10  16.66  16.66   77764
3      24/12/2018  18.12  18.16  17.50  17.51  137047
4      21/12/2018  17.33  18.00  17.20  17.74  162391
5      20/12/2018  17.13  17.42  16.90  17.42  118405

Я использовал glob для чтения всех CSV-файлов в массив.

import glob
#To read all csv files
files = glob.glob('*.csv')

Выход файлов [] выглядит следующим образомthis.

['BBOZ.csv', 'CORE.csv', 'DJRE.csv', 'ETPMAG.csv', 'ETPMPD.csv', 'ETPMPM.csv', 'GOLD.csv', 'HACK.csv', 'IGB.csv', 'IJR.csv', 'IXJ.csv', 'MOAT.csv', 'MVS.csv', 'NDQ.csv', 'OZR.csv', 'SPY.csv', 'STW.csv', 'TECH.csv', 'USD.csv', 'VAE.csv', 'VAP.csv', 'VAS.csv', 'VDHG.csv', 'VGE.csv', 'VGS.csv', 'VTS.csv', 'YANK.csv', 'ZUSD.csv']

Каждый CSV-файл представляет собой символ ETF

Я хотел бы создать фрейм данных, который берет столбец ['Close'] из каждого CSV-файла и объединяет его водин кадр данных с символами тикера в каждом столбце, заполненными значениями закрытия для каждого символа и датой в качестве первого столбца

Таким образом, выходные данные выглядят так:

Date       BBOZ CORE DJRE ETPMAG ETPMPD .... ZUSD
31/12/2018 16   17   18   19     20     ...  21
30/12/2018 16   17   18   19     20     ...  22
29/12/2018 16   17   18   19     20     ...  23
28/12/2018 16   17   18   19     20     ...  24

Stockтаблицы

и т. д.

Я застрял на том, как создать этот фрейм данных.

1 Ответ

0 голосов
/ 01 февраля 2019

Вы можете загрузить свои столбцы в словарь и затем передать его в pd.concat:

import glob

col_list = {}
for fname in glob.iglob('*.csv'):
    base, _ = os.path.splitext(fname)
    col_list[base] = pd.read_csv(fname, usecols=['Close'], squeeze=True)

pd.concat(col_list, axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...