Несколько индексов в read_excel в DataFrame (TypeError: списочные индексы должны быть целыми числами, а не str) - PullRequest
0 голосов
/ 13 марта 2019

Извините, если этот вопрос был задан ранее. Я провел некоторое исследование и все еще не мог заставить мой код работать правильно.

Я пытаюсь прочитать файл Excel в кадре данных. Файл Excel - Book1

import numpy as np
import pandas as pd
import io

file1 = "Book1.xlsx"
Infile = pd.read_excel(file1,Sheet_Name = 'Sheet6',index_col =['DOCO','LEAST','LEASPN'])
Infile.head()
print "Test"

Как указать, что таблица имеет три столбца в индексе, и импортировать в фрейм данных?

Это ошибка, которую я получаю.

   return func(*args, **kwargs)
  File "C:\py\lib\site-packages\pandas\io\excel.py", line 238, in read_excel
    false_values=false_values, squeeze=squeeze, **kwds)
  File "C:\py\lib\site-packages\pandas\io\excel.py", line 518, in _parse_excel
    last = data[offset][col]
TypeError: list indices must be integers, not str

1 Ответ

0 голосов
/ 13 марта 2019

Вы должны передать индексы этих столбцов, а не их имена.По этой причине вы получаете

TypeError: списочные индексы должны быть целыми числами, а не str

, поскольку index_col ожидает целочисленные индексы, что также ясно из названияindex _col

Предполагая, что ваши столбцы ['DOCO','LEAST','LEASPN'] имеют индексы 2, 6, 8 соответственно, вы можете передать их в index_col.Например,

file1 = "Book1.xlsx"
Infile = pd.read_excel(file1,Sheet_Name = 'Sheet6', index_col =[2, 6, 8])

Из официальных документов (выделено)

index_col: int, список int , по умолчанию NoneСтолбец (с 0 индексами) для использования в качестве меток строк в DataFrame.Пройдите None, если такого столбца нет .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...