如何将字符添加到 pandas 列中的日期或 str?

Posted

技术标签:

【中文标题】如何将字符添加到 pandas 列中的日期或 str?【英文标题】:How to add characters to a date or str in pandas column? 【发布时间】:2020-01-14 23:31:54 【问题描述】:

有一个数据框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

但是出现了这个错误

TypeError: +: 'datetime.date' 和 'str' 的操作数类型不受支持

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

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

得到了这个错误:

AttributeError: 只能使用带有 datetimelike 值的 .dt 访问器

为什么会这样?

【问题讨论】:

我不认识 Pandas(除了它是一群可爱的毛茸茸的生物),但你应该试图在你的 Python 中操纵 datetime 对象代码。如果您想以该格式查看您的日期时间,请使用旨在输出字符串的函数。 【参考方案1】:

您可以将日期对象转换为字符串用于第一个解决方案,如果想使用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的原因:

TypeError: +: 'datetime.date' 和 'str' 的操作数类型不受支持

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

错误2的原因:

AttributeError: 只能使用带有 datetimelike 值的 .dt 访问器

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

【讨论】:

正是我需要的。谢谢!

以上是关于如何将字符添加到 pandas 列中的日期或 str?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两列中的日期和时间放入pandas to_datetime并设置为索引[重复]

如何根据列中的最新日期聚合 pandas 数据框中的行?

pandas.read_csv() 可以在同一列中应用不同的日期格式!这是一个已知的错误吗?如何解决?

Pandas使用split函数基于指定分隔符拆分数据列的内容为列表设置expand参数将拆分结果列表内容转化为多列数据并添加到原数据中replace函数基于正则表达式替换字符串数据列中的匹配内容

Pandas:如何将数据框列中的“时间戳”值从对象/字符串转换为时间戳?

pandas将dataframe数据列中的年月日列组合成单一的日期数据列实战