2015-04-18 6 views
0

У меня есть функция с именем «generate_wind_cap_new_data», которая возвращает рамку данных pandas.Как работать с TypeError: объект «functools.partial» не имеет атрибута «__getitem__»

Я хочу разрезать это на определенный таймер. Мой код:

generate_wind_cap = partial(generate_wind_cap_new_data,freq='1T')['2011-1-1':'2011-12-31'] 

Но я получаю ошибку: TypeError: 'functools.partial' объект не имеет атрибута 'GetItem'

Как обработать ошибку? Или есть еще один способ?

Спасибо!

+2

Почему вы используете 'partial'? – user2357112

+0

Моя голова функции выглядит «def generate_wind_cap_new_data (freq = '1T'):« Когда-то я менял частоту, и поэтому я использовал частичную. Есть ли другой способ? – EP1986

+0

Эта ошибка означает, что то, что 'partial' возвращает, не может быть нарезано/индексировано. – dbliss

ответ

0

functools.partial возвращает объект, подлежащий вызову, другими словами, возвращаемое значение из частичного является (фактически) функцией. Таким образом, ваш код похож на запись generate_wind_cap_new_data ['2011-1-1': '2011-12-31']. Я не уверен, что вы пытаетесь сделать, но вам, вероятно, понадобится вызывать функцию, возвращаемую с частичного.

+0

Итак, ладно. Я что-то пробовал. Нет, я использую: 'generate_wind_cap = generate_wind_cap_new_data ['2011-1-1': '2011-12-31']' и снова получить: TypeError: объект 'function' не имеет атрибута '__getitem__' Я имею в виду, я не могу быть таким сложно, но я не понимаю! – EP1986

Смежные вопросы