如何在 Pandas 中将数据格式更改为“%Y%m%d”?

Posted

技术标签:

【中文标题】如何在 Pandas 中将数据格式更改为“%Y%m%d”?【英文标题】:How to change format of data to '%Y%m%d' in Pandas? 【发布时间】:2018-12-20 22:42:55 【问题描述】:

我有一个 DF,第一列显示为例如2018-01-31 00:00:00.

我想将该日期的整列(或在打印/保存到其他变量期间)转换为 20180131 格式。 在保存到 CSV 文件期间不要这样做。

试过了,但没用:

df['mydate'] = pd.to_datetime(df['mydate'], format='%Y%m%d')

【问题讨论】:

【参考方案1】:

pd.to_datetime 用于将您的系列转换为datetime

s = pd.Series(['2018-01-31 00:00:00'])
s = pd.to_datetime(s)

print(s)

0   2018-01-31
dtype: datetime64[ns]

pd.Series.dt.strftime 将您的 datetime 系列转换为所需格式的字符串:

s = s.dt.strftime('%Y%m%d')

print(s)

0    20180131
dtype: object

【讨论】:

【参考方案2】:

pd.to_datetime 会将字符串转换为日期。你要covert a date to a string

df['mydate'].dt.strftime('%Y%m%d')

请注意,您的日期可能已经是一个字符串,但格式错误,在这种情况下您可能必须先将其转换为日期:

pd.to_datetime(df['mydate'], format='%Y-%m-%d %H:%M:%S').dt.strftime('%Y%m%d')

【讨论】:

什么是.dt?您要导入哪些库? 没有库,那些是 Pandas 内置的日期函数。点击帖子中的链接。 这对我不起作用:AttributeError: 'Timestamp' object has no attribute 'dt' 什么是df['mydate'].dtype @Joe 然后pd.to_datetime(df['mydate'], format='%Y-%m-%d %H:%M:S').dt.strftime('%Y%m%d') 将起作用。当然对于您的示例日期。

以上是关于如何在 Pandas 中将数据格式更改为“%Y%m%d”?的主要内容,如果未能解决你的问题,请参考以下文章

在 pandas 中应用日期时间格式进行排序

使用 np.where() 在 pandas 数据框中将 True/False 值更改为离散值

如何在 R 中将时间格式从 1730 更改为 17:30:00?

如何在tableview中将JSON字符串更改为日期格式

如何将 pandas 数据框的数据类型更改为具有定义格式的字符串?

如何在熊猫时间序列图中将 xticks 更改为年间隔