Ошибка типа: read_excel() получил неожиданный аргумент ключевого слова ‘parse_cols’

#python-3.x #pandas #dataframe

#python-3.x #панды #фрейм данных

Вопрос:

Я использую следующий код для извлечения столбца из AZ в CW :

 import numpy as np
import pandas as pd

url = 'https://www.dropbox.com/s/yze3laidhv7gl1x/Homework4.xlsx?dl=1'

changedate = lambda x: pd.to_datetime(x, format = "%Y%m") 

df = pd.read_excel(url, sheet_name = '49_Industry_Portfolios', header = 6, 
                   parse_cols = 'AZ:CW', index_col = 0, parse_dates = True, 
                   date_parser = changedate, na_values = [-99.99, -999])
print(df)
 

Но это вызывает Traceback вопрос, кто-нибудь может помочь мне исправить эту проблему? Спасибо.

Out:

 Traceback (most recent call last):

  File "<ipython-input-5-671759d2c7d1>", line 17, in <module>
    date_parser = changedate, na_values = [-99.99, -999])

  File "/Users/x/anaconda3/lib/python3.6/site-packages/pandas/util/_decorators.py", line 296, in wrapper
    return func(*args, **kwargs)

TypeError: read_excel() got an unexpected keyword argument 'parse_cols'
 

Ответ №1:

Проблема вызвана тем, что parse_cols устарело, используйте usecols вместо этого.

 df = pd.read_excel(url, sheet_name = '49_Industry_Portfolios', header = 6, 
                   usecols = 'AZ:CW', index_col = 0, parse_dates = True, 
                   date_parser = changedate, na_values = [-99.99, -999])
 

Ответ №2:

Способ использовать usecols для заданного числа (скажем, nb_cols) первых столбцов::

pd.read_excel(..., usecols=range(nb_cols), ...) .

Для соответствия PEP8 не используйте пробел для аргументов ключевого слова (именованных) при вызове функции

Для начального и конечного столбцов:

pd.read_excel(..., usecols=range(start, end), ...) .