python - 将长日期时间转换为日期 (dd/mm/yyyy)

标签 python pandas datetime

在 CSV 文件中,我有两种日期格式:05/02/19802022-07-30T10:00:20.973235

我想将它们转换为 yyyy/mm/dd 日期类型。

我尝试了 to_datetimeparse_dates= 但没有成功。

有什么想法吗?

import pandas as pd
from dateutil.relativedelta import *
from datetime import *

Retrieve data from the vaccination CSV
df = pd.read_csv("metabase_data/vaccinations/query.csv", usecols=[2,3,4,5,8,9,10])
df = df.rename(columns={'First Name': 'firstName', 'Last Name': 'lastName', 'Dob': 'dob', 'Reservation Number': 'reservation', 'Sec On D/ Last Vaccination Date': 'vaccinationDate', 'Vaccination Proof Uploaded Date Time' : 'dateTimeUploaded', 'Club Name':'voyageId'})

CSV 提取

<表类=“s-表”> <标题> ID 个人资料 ID 名字 姓氏 多布 预订号码 类型 首次/最后一次疫苗接种日期 D 秒/最后一次疫苗接种日期 疫苗接种证明上传日期时间 俱乐部名称 <正文> dfgfgh ccbvcf 杰森 钱伯斯 1980年5月2日 45544 P 2012年4月23日 2022-07-30T10:00:20.973235 rt1377 dfgnhvn 哼哼 希瑟 雅各布森 1983年5月28日 34646 P 2001年7月1日 2022-07-30T09:57:45.614589 rt1377 vhnghgh vnvn Jasmine 雅各布森 2004年8月28日 45656 P 2011年4月30日 2022-07-30T09:56:29.322404 rt1377

提前致谢。

最佳答案

来自您的数据框:

    ID      Profile ID  First Name  Last Name   Dob Reservation Number  Type    Fir St/ Last Vaccination Date   Sec On D/ Last Vaccination Date Vaccination Proof Uploaded Date Time    Club Name
0   dfgfgh  ccbvcf      JASON       CHAMBERS    05/02/1980      45544   P       NaN                             23/04/2012                      2022-07-30T10:00:20.973235              rt1377
1   dfgnhvn hnghn       HEATHERE    JACOBSON    28/05/1983      34646   P       NaN                             07/01/2001                      2022-07-30T09:57:45.614589              rt1377
2   vhnghgh vnvn        JASMINE     JACOBSON    28/08/2004      45656   P       NaN                             30/04/2011                      2022-07-30T09:56:29.322404              rt1377

我们可以使用 pd.to_datetime 将日期转换为具有两种不同格式的日期时间以获得预期结果:

df['Sec On D/ Last Vaccination Date'] = pd.to_datetime(df['Sec On D/ Last Vaccination Date'], format="%d/%m/%Y")
df['Vaccination Proof Uploaded Date Time'] = pd.to_datetime(df['Vaccination Proof Uploaded Date Time'], format="%Y-%m-%dT%H:%M:%S.%f")

输出:

    ID      Profile ID  First Name  Last Name   Dob Reservation Number  Type    Fir St/ Last Vaccination Date   Sec On D/ Last Vaccination Date Vaccination Proof Uploaded Date Time    Club Name
0   dfgfgh  ccbvcf      JASON       CHAMBERS    05/02/1980      45544   P       NaN                             2012-04-23                      2022-07-30T10:00:20.973235              rt1377
1   dfgnhvn hnghn       HEATHERE    JACOBSON    28/05/1983      34646   P       NaN                             2001-01-07                      2022-07-30T09:57:45.614589              rt1377
2   vhnghgh vnvn        JASMINE     JACOBSON    28/08/2004      45656   P       NaN                             2011-04-30                      2022-07-30T09:56:29.322404              rt1377

要将包含小时的日期时间缩短为仅日期,我们可以使用dt.date,如下所示:

df['Vaccination Proof Uploaded Date Time'] = pd.to_datetime(df['Vaccination Proof Uploaded Date Time'], format="%Y-%m-%dT%H:%M:%S.%f").dt.date

输出:

    ID      Profile ID  First Name  Last Name   Dob Reservation Number  Type    Fir St/ Last Vaccination Date   Sec On D/ Last Vaccination Date Vaccination Proof Uploaded Date Time    Club Name
0   dfgfgh  ccbvcf      JASON       CHAMBERS    05/02/1980      45544   P       NaN                             2012-04-23                      2022-07-30                              rt1377
1   dfgnhvn hnghn       HEATHERE    JACOBSON    28/05/1983      34646   P       NaN                             2001-01-07                      2022-07-30                              rt1377
2   vhnghgh vnvn        JASMINE     JACOBSON    28/08/2004      45656   P       NaN                             2011-04-30                      2022-07-30                              rt1377

关于python - 将长日期时间转换为日期 (dd/mm/yyyy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73195279/

相关文章:

python - 使用 CNN、tensorflow 的 CIFAR 数据集 y_pred 的形状问题

python - Pandas 将文件名存储在列表中并将所有文件读入数据框

python - 使用 Index 与 MultiIndex 的 Pandas Dataframe 日期时间切片

python - 更高效的时间增量计算 python 3

c# - 该字符串未被识别为有效的日期时间。有一个从索引 0 开始的未知单词

python - Aggfunc 的 Pandas 数据透视表列表

python - 在 python 中使用掩码分割 numpy 数组

python - 在订购时配置软层磁盘分区

python - Pandas 将混合 float/int 类型列的 int 元素读取为 nan

javascript - 将 LUIS Datetime V2 转换为 JS 日期