将日期时间数据的数据框列转换为 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 字符串数据的主要内容,如果未能解决你的问题,请参考以下文章