在 CSV 文件中,我有两种日期格式:05/02/1980
和 2022-07-30T10:00:20.973235
我想将它们转换为 yyyy/mm/dd
日期类型。
我尝试了 to_datetime
和 parse_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 提取
提前致谢。
最佳答案
来自您的数据框:
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/