Набор данных, который я использую: https://www.kaggle.com/rohanrao/nifty50-stock-market-data
Содержит данные фондового рынка всех компаний NIFTY50 с 2000 по 2020 год. Каждый файл содержит следующие столбцы: ['Date', 'Symbol', 'Series', 'Prev Close', 'Open', 'High', 'Low', 'Last', 'Close', 'VWAP', 'Volume', 'Turnover', 'Trades', 'Deliverable Volume', '%Deliverble']
Мне нужно скомпилировать столбцы 'Close'
из всех файлов в один фрейм данных. С датой в качестве индекса и именем столбца в качестве имени файла, то есть
Date ADANIPORTS ASIANPAINTS AXISBANK .....
2000-01-01 0 1500 300
2000-02-02 1 1600 400
...
В некоторых файлах есть данные только с более поздней даты (скажем, 01-01-2007), в случае пропущенных значений 'Close'
он должен быть указан как 0, т. Е. 0 до даты, когда будут доступны данные.
В настоящее время я использую этот код.
df=pd.DataFrame()
for filename in filenames:
file=dir+filename+'.csv'
data = pd.read_csv(file,usecols=lambda x: x in ['Date', 'Close'])
data.rename(columns = {'Close':filename}, inplace = True)
data.set_index('Date',inplace=True)
df.join(data, how='outer')
Возвращает (0,0) DataFrame-> df
, в противном случае я попытался
#Initialising df with GRASIM.csv, and then using join for the other dataframes
file01 = dir + "GRASIM" + '.csv'
df=pd.read_csv(file01,usecols=lambda x: x in ['Date', 'Close'])
df.rename(columns = {'Close':"GRASIM"}, inplace = True)
df.set_index('Date',inplace = True)
for filename in filenames:
file=dir+filename+'.csv'
data = pd.read_csv(file,usecols=lambda x: x in ['Date', 'Close'])
data.rename(columns = {'Close':filename}, inplace = True)
data.set_index('Date',inplace=True)
df.join(data, how='outer')
Но это возвращает изначально инициализированный кадр данных, т. Е.
GRASIM
Date
2000-01-03 438.30
2000-01-04 437.15
... ...
Другие столбцы не добавляются.
В чем проблема в этом?