Можно ли создать столбец под названием тикер с названием каждой акции при чтении в нескольких файлах CSV? - PullRequest
0 голосов
/ 04 октября 2018

Я довольно новичок в Python и мне нужна помощь в создании нового столбца с именем Ticker при чтении в нескольких файлах CSV.Как Yahoo!Финансовый API устарел, я читаю в CSV-данных из Yahoo!Финансирование для «GOOG», «IBM» и «AAPL».Следующий код считывает отдельные CSV-файлы в один DateFrame, однако трудно определить, какой запас какой.

path = 
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file in allFiles:
     df = pd.read_csv(file,index_col=None, 
          header=0)
     list_.append(df)
frame = pd.concat(list_)
frame.head()

Можно ли создать столбец с именем Ticker, имеющий имя файла csv для каждого наблюдения для каждого запаса?Например.GOOG.csv - это имя файла для Google, IBM.csv - это имя файла для IBM ...

Это упростит идентификацию того, какой запас есть.

1 Ответ

0 голосов
/ 04 октября 2018

Согласно этому предыдущему посту, я склонен полагать, что у вас есть два очевидных варианта.Либо (1) добавьте names = [] в исходную команду read_csv для указания имени акции, либо (2) добавьте имена столбцов в кадр данных перед загрузкой.

Подход (1) может включать замену текущего чтениясо следующим фрагментом кода:

df=pd.read_csv(file,names=[file[len(path)+1:-4]],index_col=None)

Здесь я предположил, что смогу получить строку нужного тикера, посмотрев на все символы после одного пути после косой черты и до .csv.

Подход (2) может быть реализован путем добавления следующей строки кода после чтения csv, но перед добавлением фрейма данных:

df.columns=[file[len(path)+1:-4]]

В этом ответе я предполагал, что у вас есть / требуется только один столбецданных для каждого CSV, но если вы хотите разместить несколько столбцов, вы просто укажите более одного имени в списке имен столбцов.

...