У меня есть набор данных, который имеет столбец даты:Extract лет из столбца даты строки в колонке панд
df.faultDate.head()
0 2014-07-13
1 2014-07-13
2 2014-07-12
3 2014-07-12
4 2014-07-13
Я пытаюсь получить только лет от этого.
dt.datetime.strptime(df.faultDate[0], '%Y-%m-%d').year
2014
Но:
df.faultDate.apply(dt.datetime.strptime, args=('%Y-%m-%d'))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-21-bca0dc79125b> in <module>()
----> 1 df.faultDate.apply(dt.datetime.strptime, args=('%Y-%m-%d'))
/home/shiny/anaconda3/lib/python3.4/site-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds)
2058 values = lib.map_infer(values, lib.Timestamp)
2059
-> 2060 mapped = lib.map_infer(values, f, convert=convert_dtype)
2061 if len(mapped) and isinstance(mapped[0], Series):
2062 from pandas.core.frame import DataFrame
pandas/src/inference.pyx in pandas.lib.map_infer (pandas/lib.c:58435)()
/home/shiny/anaconda3/lib/python3.4/site-packages/pandas/core/series.py in <lambda>(x)
2047
2048 if kwds or args and not isinstance(func, np.ufunc):
-> 2049 f = lambda x: func(x, *args, **kwds)
2050 else:
2051 f = func
TypeError: strptime() takes exactly 2 arguments (9 given)
Я также не знаю, как передать .year
аргумент после того как я успешно преобразовать строки в DateTimes. Я мог бы написать функцию-обертку, которая принимает каждую строку в качестве входных данных, а затем извлекает год, но я думаю, что полезно знать, как применять синтаксис pandas для использования в будущем. Благодаря!
Спасибо! Мне нравится первая версия. –