如何在 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”?的主要内容,如果未能解决你的问题,请参考以下文章
使用 np.where() 在 pandas 数据框中将 True/False 值更改为离散值
如何在 R 中将时间格式从 1730 更改为 17:30:00?