#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), ...)
.