如何转换数据框中的日期格式
how to convert date format in a dataframe
我有一个包含以下信息的数据框:
N_Ord PSN debut_interval
1 A4BA0D07 01/01/2022
2 04BB0607 01/01/2022
我需要
- 将我的数据帧每一行的
debut_interval
转换为该格式 yyyy-mm-ddT00:00:00
- 添加一个包含相同日期的新列
fin_interval
yyyy-mm-ddT23:59:59
def get_date(fmt):
fmt = "%Y-%m-%dT" + fmt
return lambda x: x.dt.strftime(fmt)
df['debut_interval'] = pd.to_datetime(df['debut_interval'])
df.debut_interval.transform({'debut_interval':get_date('00:00:00'),
'fin_interval':get_date('23:59:59')})
debut_interval fin_interval
0 2022-01-01T00:00:00 2022-01-01T23:59:59
1 2022-01-01T00:00:00 2022-01-01T23:59:59
您可以使用:
fmt = '%Y-%m-%dT%H:%M:%S'
df2 = (df
.assign(debut_interval=pd.to_datetime(df['debut_interval'], dayfirst=True),
fin_interval=lambda d: d['debut_interval'].add(pd.to_timedelta('23:59:59')).dt.strftime(fmt))
.assign(debut_interval=lambda d: d['debut_interval'].dt.strftime(fmt)
)
)
输出:
N_Ord PSN debut_interval fin_interval
0 1 A4BA0D07 2022-01-01T00:00:00 2022-01-01T23:59:59
1 2 04BB0607 2022-01-01T00:00:00 2022-01-01T23:59:59
我有一个包含以下信息的数据框:
N_Ord PSN debut_interval
1 A4BA0D07 01/01/2022
2 04BB0607 01/01/2022
我需要
- 将我的数据帧每一行的
debut_interval
转换为该格式 yyyy-mm-ddT00:00:00 - 添加一个包含相同日期的新列
fin_interval
yyyy-mm-ddT23:59:59
def get_date(fmt):
fmt = "%Y-%m-%dT" + fmt
return lambda x: x.dt.strftime(fmt)
df['debut_interval'] = pd.to_datetime(df['debut_interval'])
df.debut_interval.transform({'debut_interval':get_date('00:00:00'),
'fin_interval':get_date('23:59:59')})
debut_interval fin_interval
0 2022-01-01T00:00:00 2022-01-01T23:59:59
1 2022-01-01T00:00:00 2022-01-01T23:59:59
您可以使用:
fmt = '%Y-%m-%dT%H:%M:%S'
df2 = (df
.assign(debut_interval=pd.to_datetime(df['debut_interval'], dayfirst=True),
fin_interval=lambda d: d['debut_interval'].add(pd.to_timedelta('23:59:59')).dt.strftime(fmt))
.assign(debut_interval=lambda d: d['debut_interval'].dt.strftime(fmt)
)
)
输出:
N_Ord PSN debut_interval fin_interval
0 1 A4BA0D07 2022-01-01T00:00:00 2022-01-01T23:59:59
1 2 04BB0607 2022-01-01T00:00:00 2022-01-01T23:59:59