由于业务场景的需求,这张表里日期格式与其他表不匹配,而且需要把日期向后推算1天、2天等等。
输入(列中数据是object格式):
date
2019-11-01 19:30
2019-11-30 19:00
# Data columns (total 1 columns):
# date 2 non-null object
期望输出:
- 列datetime:datetime格式,方便计算。
- 列today:时间由datetime格式,转为字符串格式。
- 列tomorrow:时间加上1天,然后转为字符串格式。
date datetime today tomorrow
2019-11-01 19:30 2019-11-01 19:30:00 20191101 20191102
2019-11-30 19:00 2019-11-30 19:00:00 20191130 20191201
# Data columns (total 4 columns):
# date 2 non-null object
# datetime 2 non-null datetime64[ns]
# today 2 non-null object
# tomorrow 2 non-null object
Python实现代码:
import datetime
import pandas as pd
dictDate = {'date': ['2019-11-01 19:30', '2019-11-30 19:00']}
df = pd.DataFrame(dictDate)
df['datetime'] = pd.to_datetime(df['date'])
df['today'] = df['datetime'].apply(lambda x: x.strftime('%Y%m%d'))
df['tomorrow'] = (df['datetime'] + datetime.timedelta(days=1)).dt.strftime('%Y%m%d')
实现方法:
- 列date,用pd.to_datetime,将原本date列从object格式转为datetime64[ns]格式。
- 列today,用.strftime('%Y%m%d')取出年月日,把这个函数用apply lambda应用到df的这一列中。
- 列tomorrow,用+ datetime.timedelta(days=1)加上一天。然后用.dt.strftime('%Y%m%d')取出年月日。