目录
datetime是专门转换时间的模块,但是在平时的日常使用上,pandas的to_datetime模块显得更加便捷。
1. 格式转换
常见的时间格式有三种:yyyymmdd,yyyy/mm/dd,yyyy-mm-dd。pandas的便捷在于对于时间不用区分其实际格式(可能是时间标准格式,也可能是数字,字符串等等)。在其他时候读取时间类型的数据时,可能会将其识别为数字,因此在转换前添加一个字符串的转换会更加稳妥。
import pandas as pd
date = '20230301'
new_date1 = pd.to_datetime(str(date)).strftime("%Y-%m-%d")
new_date2 = pd.to_datetime(str(date)).strftime("%Y%m%d")
new_date3 = pd.to_datetime(str(date)).strftime("%Y/%m/%d")
对应得到的结果是:
2. 时间计算
2.1 提取年月日
import pandas as pd
date = '20230301'
day = pd.to_datetime(str(date)).day
month = pd.to_datetime(str(date)).month
year = pd.to_datetime(str(date)).year
对应得到的结果为:
2.2 计算
计算两个日期相差的天数。
import pandas as pd
def change(day):
return pd.to_datetime(str(day))
date1 = '20230301'
date2 = '20220101'
day_diff = (change(date1) - change(date2)).days
对应得到的结果是424天。
如果是需要在日期的基础上加上或减去年月日,需要引入一个relativedelta模块。
import pandas as pd
from dateutil.relativedelta import relativedelta
def change(day):
return pd.to_datetime(str(day))
date = '20230301'
new_date = (change(date) + relativedelta(years=1)).strftime("%Y-%m-%d")
new_date1 = (change(date) - relativedelta(days=1)).strftime("%Y-%m-%d")
new_date2 = (change(date) + relativedelta(months=1)).strftime("%Y-%m-%d")
对应的结果为:
本期分享到此结束,有和问题欢迎交流。