首页 > 解决方案 > 如何将字符添加到 pandas 列中的日期或 str?

问题描述

有一个数据框df

它包含列 df.date,类型对象。示例 2019-01-01

我想将这个值“T07:00:00+0000”添加到每个日期,所以我想要的输出是 2019-01-01T07:00:00+0000。

我试过了

df.date + 'T07:00:00+0000', as the type of the column object

但是得到了这个错误

类型错误:+ 不支持的操作数类型:“datetime.date”和“str”

好的,如果是日期时间,让我们转换为字符串:

df.date.dt.strftime('%Y-%m-%d')

并得到这个错误:

AttributeError:只能将 .dt 访问器与 datetimelike 值一起使用

为什么会这样?

标签: pythonstringpandasdatedatetime

解决方案


您可以将日期对象转换为字符串用于第一个解决方案,如果想使用Series.dt.strftime第一个将date对象转换为datetimes 的下一个解决方案to_datetime

from datetime import date

df = pd.DataFrame({'date':[date(2019,1,1)]})

df['date1'] = df.date.astype(str) + 'T07:00:00+0000'

df['date2'] = pd.to_datetime(df.date).dt.strftime('%Y-%m-%d') + 'T07:00:00+0000'
print (df)
         date                     date1                     date2
0  2019-01-01  2019-01-01T07:00:00+0000  2019-01-01T07:00:00+0000

错误1的原因:

类型错误:+ 不支持的操作数类型:“datetime.date”和“str”

要将字符串添加到日期/日期时间,必须转换为字符串。

错误2的原因:

AttributeError:只能将 .dt 访问器与 datetimelike 值一起使用

Pandas 对python dates 的支持仍然很差,因此有必要转换为日期时间。


推荐阅读