Прочитать определенный столбец в Excel для dataframe - PullRequest
0 голосов
/ 09 января 2019

Я хочу прочитать определенный столбец из файла Excel в файл данных, однако я хочу указать столбец с именем заголовка столбца.

для примера, у меня есть файл Excel с двумя столбцами на листе 2: «число» в столбце A и «ForeignKey» в столбце B). Я хочу импортировать "ForeignKey" в информационный кадр. Я сделал это с помощью следующего скрипта:

xl_file = pd.read_excel('D:/SnapPython/TestDF.xlsx', sheet_name='Sheet 2', usecols=[0,1]) 

Это показывает следующее в моем xl_file:

       number ForeignKey
0       1        abc
1       2        def
2       3        ghi

В случае небольшого количества столбцов, я могу получить "ForeignKey", указав usecols = [1]. Однако, если у меня много столбцов и я знаю имя столбца, это будет проще, если указать имя столбца. Я попробовал следующий код, но он дает пустой фрейм данных.

xl_file = pd.read_excel('D:/SnapPython/TestDF.xlsx', sheet_name='Sheet 2', usecols=['ForeignKey']) 

Согласно обсуждению в следующей ссылке, приведенный выше код работает хорошо, но для read_csv.

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

Есть ли способ сделать это для чтения файла Excel?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Вам нужно передать имя столбца Excel, тоже в формате диапазона, например. colname:colname.

Например, если ForeignKey появляется в столбце B вашего листа Excel 2, тогда выполните -

xl_file = pd.read_excel('D:/SnapPython/TestDF.xlsx', sheet_name='Sheet 2', usecols='B:B') 

См. Github выпуск и предписанное решение для того же.

0 голосов
/ 09 января 2019

решение есть, но csv обрабатываются не так, как в Excel.

из документации, для csv:

usecols: list-like или callable, по умолчанию Нет

Например, допустимый параметр списка соединений, подобный списку, будет [0, 1, 2] или [[foo ’,‘ bar ’,‘ baz ’].

для Excel:

usecols: int или list, по умолчанию None

  • Если нет, то анализировать все столбцы,
  • Если int, то указывает на последний столбец, который будет проанализирован
  • Если список целых чисел указывает на список номеров столбцов, которые нужно проанализировать
  • Если строка, то указывает разделенный запятыми список букв столбцов Excel и диапазонов столбцов (например, «A: E» или «A, C, E: F»). Диапазоны с обеих сторон

поэтому вам нужно назвать это так:

xl_file = pd.read_excel('D:/SnapPython/TestDF.xlsx', sheet_name='Sheet 2', usecols='ForeignKey')

и если вам нужно также 'number':

xl_file = pd.read_excel('D:/SnapPython/TestDF.xlsx', sheet_name='Sheet 2', usecols='number,ForeignKey')

EDIT : Вам нужно указать имя столбца Excel, а не имя данных. другой ответ решить это. однако вам не понадобится «B: B», «B» сделает трюк НО , который не улучшит протоколы с числами.

если вы можете загрузить все данные не вовремя, возможно, лучший способ решить эту проблему - проанализировать все столбцы и затем выбрать нужные столбцы:

xl_file = pd.read_excel('D:/SnapPython/TestDF.xlsx', sheet_name='Sheet 2')['ForeignKey']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...