1. 转换格式
import datetime
today = '2021-07-19'
print('Original string'+ ': ' , today , type(today))
#转变为时间格式
today1 = datetime.datetime.strptime(today,'%Y-%m-%d')
print('Change to datetime'+ ': ',today1,type(today1))
#转变为字符串
today2 = datetime.datetime.strftime(today1,'%Y-%m-%d')
print('Change to datetime'+ ': ',today2,type(today2))
Original string: 2021-07-19 <class 'str'>
Change to datetime: 2021-07-19 00:00:00 <class 'datetime.datetime'>
Change to datetime: 2021-07-19 <class 'str'>
2. 日期运算
import pandas as pd
import datetime
# 模拟数据
df = pd.DataFrame(columns = ['Date1','Date2'],index = range(0,4))
today = '2021-07-19'
for i in range(0,4):
df.loc[i,'Date1'] = datetime.datetime.strptime(today,'%Y-%m-%d')+datetime.timedelta(days = i)
df.loc[i,'Date2'] = datetime.datetime.strptime(today,'%Y-%m-%d')+datetime.timedelta(days = i+3)
#计算日期相差天数
for i in range(0,df.shape[0]):
df.loc[i,'Days'] = (df.iloc[0,1]-df.iloc[0,0]).days
df
3. 特殊格式
2021-04-0800:00:00.0,2020/12/9,2020-12-9
import pandas as pd
import datetime
import re
df['起保时间'] = df['起保时间'].astype('str')
for i in range(0,df.shape[0]):
if ':' in df.loc[i,'起保时间']:
df.loc[i,'起保时间'] = re.search(r"(\d{4}-\d{1,2}-\d{1,2})",df.loc[i,'起保时间']).group(0)
if '-' in df.loc[i,'起保时间']:
df.loc[i,'起保时间'] = df.loc[i,'起保时间'].replace('-','/')
def func(df):
df['起保时间'] = datetime.datetime.strptime(df['起保时间'],'%Y/%m/%d')
return df
df = df.apply(func, axis = 1)
df['起保时间']