Индекс 0 выходит за пределы оси 0 с размером 0 при преобразовании большой партии CSV в xlsx с использованием xlsxwriter - PullRequest
0 голосов
/ 02 ноября 2019

Пакет из 1k CSV-файлов, которые необходимо преобразовать с некоторыми условиями в xlxs. Запуск цикла for для выбора файлов csv и именования файлов xlsx. Код отлично работает для первых 5-6 преобразований csv в xlsx. Затем получите сообщение об ошибке:

IndexError: индекс 0 выходит за пределы для оси 0 с размером 0

   for i in range(client_list_items):
       client = client_list[i]    
       TradeSignals = pd.read_csv(client + '_TradeSignals.csv',header=None)
       os.remove(client + '_TradeSignals.csv')
       TradeSignals.columns = ['idx','idx','Date','Open','High','Low','Close','Symbol','TrendSELL','TrendBUY']
       TradeSignals = pd.merge(TradeSignals,sector[['Industry','Symbol','M-CapRank']],on='Symbol', how='left')
       TradeSignals['Buy_Signal'] = (TradeSignals['Low'] < 
       TradeSignals['TrendBUY']) & (TradeSignals['High'] < TradeSignals['TrendSELL'])
       TradeSignals['Sell_Signal'] = (TradeSignals['TrendSELL'] < TradeSignals['High']) & (TradeSignals['TrendBUY'] < TradeSignals['Low'])
       TradeSignals = TradeSignals[((TradeSignals['Buy_Signal'] == True) | ((TradeSignals['Sell_Signal'] == True)))]
       TradeSignals['Trade'] = np.where(TradeSignals['Buy_Signal'], 'Buy', 'Sell')
       TradeSignals = TradeSignals[['Industry','Symbol','Date','Close','M-CapRank','Trade']]
       TradeSignals.sort_values(by=['Industry','M-CapRank'], inplace=True);
       TradeSignals.set_index(['Industry','Symbol'], inplace=True);
       writer = pd.ExcelWriter(client + '_TradeSignal.xlsx', engine='xlsxwriter')  
       TradeSignals.to_excel(writer, sheet_name='Sheet1')# <----- error midway after a few files are generated(total batch 1k files)

       writer.save()

Необходимо преобразовать всю партию 1k CSVфайлы в формате xlsx

1 Ответ

0 голосов
/ 03 ноября 2019

Решено. Было несколько случаев пустых фреймов данных, которые вызывали ошибку.

...