第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在兩個日期之間添加 date_range

如何在兩個日期之間添加 date_range

慕田峪4524236 2024-01-16 10:28:40
我想處理一些日子之間的時間重疊。正如你在我的 df 中看到的,我的開始日期為 2019-10-25,結(jié)束日期為 2019-10-27:begin                       end                          info2019-10-25 10:39:58.352073  2019-10-25 10:40:06.266782   toto2019-10-25 16:35:22.485574  2019-10-27 09:50:31.713179   tata <------ HERE2019-10-27 09:50:31.713179  2019-10-27 09:50:31.713192   titi2019-10-28 14:04:33.095633  2019-10-28 14:05:07.639344   tete我想添加與這兩個日期之間的時間段(日期 00:00:00;日期 23:59:59.9)一樣多的時間段并復(fù)制數(shù)據(jù)info,如下所示:2019-10-25 16:35:22.485574  2019-10-25 23:59:59.999999   tata2019-10-26 00:00:00.000000  2019-10-26 23:59:59.999999   tata2019-10-27 00:00:00.000000  2019-10-27 09:50:31.713179   tata如果開始日期與結(jié)束日期不同,則 => 計算天數(shù)保留開始并添加新的結(jié)束“日期 23:59:59.9”添加新的 date_range 對應(yīng)的天數(shù)取結(jié)束并添加新的開始 'date 00:00:00.0'填寫“信息”最終預(yù)期結(jié)果:begin                       end                          info2019-10-25 10:39:58.352073  2019-10-25 10:40:06.266782   toto2019-10-25 16:35:22.485574  2019-10-25 23:59:59.999999   tata2019-10-26 00:00:00.000000  2019-10-26 23:59:59.999999   tata2019-10-27 00:00:00.000000  2019-10-27 09:50:31.713179   tata2019-10-27 09:50:31.713179  2019-10-27 09:50:31.713192   titi2019-10-28 14:04:33.095633  2019-10-28 14:05:07.639344   tete但我不知道如何實現(xiàn) date_range、填充信息、添加具體行數(shù)。謝謝你的時間
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻1966條經(jīng)驗 獲得超4個贊

假設(shè)begin和end已經(jīng)是Timestamp類型:


# Generate a series of Timedeltas for each row

n = (

    (df['end'].dt.normalize() - df['begin'].dt.normalize())

        .apply(lambda d: [pd.Timedelta(days=i) for i in range(d.days+1)])

        .explode()

).rename('n')

df = df.join(n)


# Adjust the begin and end of each row

adjusted_begin = np.max([

    df['begin'],

    df['begin'].dt.normalize() + df['n']

], axis=0)


adjusted_end = np.min([

    df['end'],

    pd.Series(adjusted_begin).dt.normalize() + pd.Timedelta(days=1, milliseconds=-100)

], axis=0)


# Final assembly

df = df.assign(begin_=adjusted_begin, end_=adjusted_end)

結(jié)果:


                       begin                        end  info      n                     begin_                       end_

0 2019-10-25 10:39:58.352073 2019-10-25 10:40:06.266782  toto 0 days 2019-10-25 10:39:58.352073 2019-10-25 10:40:06.266782

1 2019-10-25 16:35:22.485574 2019-10-27 09:50:31.713179  tata 0 days 2019-10-25 16:35:22.485574 2019-10-25 23:59:59.900000

1 2019-10-25 16:35:22.485574 2019-10-27 09:50:31.713179  tata 1 days 2019-10-26 00:00:00.000000 2019-10-26 23:59:59.900000

1 2019-10-25 16:35:22.485574 2019-10-27 09:50:31.713179  tata 2 days 2019-10-27 00:00:00.000000 2019-10-27 09:50:31.713179

2 2019-10-27 09:50:31.713179 2019-10-27 09:50:31.713192  titi 0 days 2019-10-27 09:50:31.713179 2019-10-27 09:50:31.713192

3 2019-10-28 14:04:33.095633 2019-10-28 14:05:07.639344  tete 0 days 2019-10-28 14:04:33.095633 2019-10-28 14:05:07.639344

剪掉不需要的列


查看完整回答
反對 回復(fù) 2024-01-16
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號