将日期时间数据的数据框列转换为 DD/MM/YYYY 字符串数据

Posted

技术标签:

【中文标题】将日期时间数据的数据框列转换为 DD/MM/YYYY 字符串数据【英文标题】:Converting dataframe column of datetime data to DD/MM/YYYY string data 【发布时间】:2019-06-25 15:14:07 【问题描述】:

我有一个数据框列,其中包含1980-12-11T00:00:00 格式的日期时间数据。

我需要将整列转换为DD/MM/YYY字符串格式。

有什么简单的代码吗?

【问题讨论】:

***.com/questions/30132282/… 所以像 dates.strftime('%d-%m-%Y') pd.to_datetime('1980-12-11T00:00:00').strftime('%d/%m/%Y') : '11/12/1980' 【参考方案1】:

使用pandas时,试试pandas.to_datetime

import pandas as pd
df = pd.DataFrame('date': ['1980-12-%sT00:00:00'%i for i in range(10,20)])
df.date = pd.to_datetime(df.date).dt.strftime("%d/%m/%Y")
print(df)
         date
0  10/12/1980
1  11/12/1980
2  12/12/1980
3  13/12/1980
4  14/12/1980
5  15/12/1980
6  16/12/1980
7  17/12/1980
8  18/12/1980
9  19/12/1980

【讨论】:

【参考方案2】:

创建一个工作示例:

df = pd.DataFrame('date':['1980-12-11T00:00:00', '1990-12-11T00:00:00', '2000-12-11T00:00:00'])
print(df)

                  date
0  1980-12-11T00:00:00
1  1990-12-11T00:00:00
2  2000-12-11T00:00:00

通过pd.to_datetime() 将列转换为datetime 并调用strftime()

df['date_new']=pd.to_datetime(df.date).dt.strftime('%d/%m/%Y')
print(df)

                  date    date_new
0  1980-12-11T00:00:00  11/12/1980
1  1990-12-11T00:00:00  11/12/1990
2  2000-12-11T00:00:00  11/12/2000

【讨论】:

我得到:OutOfBoundsDatetime:越界纳秒时间戳:7020-11-11 00:00:00 不,绝对不是年份。转换为字符串前的日期格式为YYYY-MM-DDT00:00:00 正是 `7020-11-11 00:00:00` 这一行是发生错误的地方。 :) 因为熊猫不能 7020 年 啊,数据有问题!有什么办法不停止这样的错误吗? @Bimons 您可以查看此链接和其他相关链接。 :) ***.com/questions/32888124/…【参考方案3】:

您可以使用pd.to_datetime 将字符串转换为日期时间数据

pd.to_datetime(df['col'])

您还可以将特定格式传递为:

pd.to_datetime(df['col']).dt.strftime('%d/%m/%Y')

【讨论】:

以上是关于将日期时间数据的数据框列转换为 DD/MM/YYYY 字符串数据的主要内容,如果未能解决你的问题,请参考以下文章

将对象转换为数据框列中的日期时间[重复]

Python:在数据框列中将秒转换为日期时间格式

DataTable 未格式化日期时间

从日期中删除时间。并保持日期类型[重复]

在 R 中将数据框列转换为日期时间格式

自定义 WPF DatePicker 掩码