比如說,初始日期分別是20200101,20201201,我要生成如下
**如下:
list1= #注意,上面的tmp其實是乙個表,裡面有三個字段,分別是ref_id,opendate,enddate我們重新修改了一下,寫成函式用於儲存id
list2= #
用於儲存date
for i in
range(len(tmp)):
#生成時間序列
obs_list = [str(i.date()) for i in (pd.date_range(start =tmp.iloc[i].opendate,
end=tmp.iloc[i].enddate,
freq = '
m')).tolist()]
#date
l=len(obs_list) #
coll=[tmp.iloc[i].ref_id]*l
from itertools import chain #
用於展平裡面的
dict1=pd.dataframe()
dict1
def驗證結果如下;date_to_row(df):
'''df 有欄位id,opendate,enddate三個字段組成
這次是按照月份差生成行數,還可以按照天數差生成
'''df_out_1=pd.dataframe(columns=['
id','
opendate
','enddate'])
for i in
range(len(df)):
#生成時間序列
df_out =pd.dataframe()
date_list = [str(i.date()) for i in (pd.date_range(start =df.iloc[i].opendate,
end=df.iloc[i].enddate,
freq = 'm'
)).tolist()]
len_date =len(date_list)
df_out['id
'] = [df.iloc[i].id]*len_date
df_out[
'opendate
'] = [df.iloc[i].opendate]*len_date
df_out[
'enddate
'] = [df.iloc[i].enddate]*len_date
df_out[
'row_date
'] =date_list
return df_out_1
最後可以使用表連線或者合併的功能
寫這些主要用於歷史資料回溯,比如說計算vintage 等
c 兩個時間差
datetime t1 datetime.parse 2007 01 01 datetime t2 datetime.parse 2006 01 01 system.timespan t3 t1 t2 兩個時間相減 預設得到的是 兩個時間之間的天數 得到 365.00 00 00 double ge...
Java計算兩個時間差
計算兩個日期的時間差 param formattime1 param formattime2 return public static string gettimedifference timestamp formattime1,timestamp formattime2 catch parseex...
Java獲取兩個時間差
如果是string型別,需要轉成date型別 如 string starttime 2018 01 01 10 30 30 string endtime 2018 01 08 11 45 45 看自己的時間格式選擇對應的轉換物件 dateformat sdf new dateformat yyyy ...