#python #date
Вопрос:
Я пытаюсь извлечь epiweek из фрейма данных pandas с помощью библиотеки «epiweeks», но у меня возникли некоторые проблемы с этим.
код mi приведен ниже
import pandas as pd from epiweeks import Week, Year a= [('2021-06-11 00:00:00'), ('2021-06-11 00:00:00'), ('2021-06-11 00:00:00'), ('2021-06-11 00:00:00'), ('2021-06-11 00:00:00'), ('2021-06-11 00:00:00'), ('2021-06-18 00:00:00'), ('2021-06-18 00:00:00'), ('2021-06-18 00:00:00'), ('2021-06-18 00:00:00'), ('2021-06-18 00:00:00'), ('2021-06-18 00:00:00'), ('2021-06-18 00:00:00')] b = [25,58,65,45,47,85,96,36,25,14,25,78,75] fecha = pd.DataFrame(list(zip(a,b))) fecha[0] = pd.to_datetime(fecha[0]) Week.fromdate(fecha[0])
с помощью этого кода я получаю: Ошибка атрибута: объект «Серия» не имеет атрибута «год»
можете ли вы помочь мне найти мою ошибку
Вы знаете другой способ сделать это?
Спасибо!
Ответ №1:
Полегче!
Единственное, что вы делаете неправильно, — это передаете все Series
это fromdate
:
Week.fromdate(fecha[0])
Это не сработает, потому Week.fromdate
что ожидает a datetime
или a pandas.Timestamp
. Но вы можете вызвать fecha[0].apply
серию, которая принимает функцию, и вызывает эту функцию для каждого элемента в серии, и добавляет значение, возвращаемое функцией, в новую серию, а затем возвращает эту серию. Затем вы можете добавить эту серию в фрейм данных следующим образом:
fecha['week'] = fecha[0].apply(Week.fromdate)
Или, если вы хотите передать некоторые пользовательские параметры в Week.fromdate
:
fecha['week'] = fecha[0].apply(lambda x: Week.fromdate(x, ...))
Попробовать это:
gt;gt;gt; fecha 0 1 week 0 2021-06-11 25 202123 1 2021-06-11 58 202123 2 2021-06-11 65 202123 3 2021-06-11 45 202123 4 2021-06-11 47 202123 5 2021-06-11 85 202123 6 2021-06-18 96 202124 7 2021-06-18 36 202124 8 2021-06-18 25 202124 9 2021-06-18 14 202124 10 2021-06-18 25 202124 11 2021-06-18 78 202124 12 2021-06-18 75 202124 gt;gt;gt; fecha['week'][0] Week(2021, 23, CDC) gt;gt;gt; fecha['week'][12] Week(2021, 24, CDC)
Комментарии:
1. Отлично! это было легко. Спасибо большое за помощь мне.