python提取字符串中的日期_从pandas列中的日期字符串列中提取年份

博主在尝试从一个包含日期的pandas数据集中提取年份,遇到错误:`TypeError: strptime() takes exactly 2 arguments (9 given)`。他们希望使用`dt.datetime.strptime`将日期字符串转换为datetime对象,然后获取年份,但遇到了问题。目前的解决方案是编写一个包装器函数来逐行处理并提取年份,不过他们也想学习如何利用pandas的语法直接完成此操作。
摘要由CSDN通过智能技术生成

我有一个包含日期列的数据集:df.faultDate.head()

0 2014-07-13

1 2014-07-13

2 2014-07-12

3 2014-07-12

4 2014-07-13

我只想从中得到几年。在

^{pr2}$

但是:df.faultDate.apply(dt.datetime.strptime, args=('%Y-%m-%d'))

---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

in ()

----> 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 (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)

我也不知道在成功地将字符串转换为datetime之后,如何传递.year参数。我可以编写一个包装器函数,将每一行作为输入,然后提取年份,但我认为了解如何应用pandas语法以供将来参考是很有用的。谢谢!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值