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

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

將開始時間和結(jié)束時間作為過濾器應(yīng)用于數(shù)據(jù)框

將開始時間和結(jié)束時間作為過濾器應(yīng)用于數(shù)據(jù)框

九州編程 2023-04-25 17:50:30
我正在處理一個時間序列數(shù)據(jù)框,它看起來像這樣,并且包含從 2020 年 1 月到 2020 年 8 月的數(shù)據(jù)。    Timestamp            Value    2020-01-01 00:00:00 -68.95370    2020-01-01 00:05:00 -67.90175    2020-01-01 00:10:00 -67.45966    2020-01-01 00:15:00 -67.07624    2020-01-01 00:20:00 -67.30549    .....    2020-07-01 00:00:00 -65.34212我正在嘗試使用下面數(shù)據(jù)框中的 start_time 和 end_time 列對前一個數(shù)據(jù)幀應(yīng)用過濾器:  start_time            end_time 2020-01-12 16:15:00 2020-01-13 16:00:00 2020-01-26 16:00:00 2020-01-26 16:10:00 2020-04-12 16:00:00 2020-04-13 16:00:00 2020-04-20 16:00:00 2020-04-21 16:00:00 2020-05-02 16:00:00 2020-05-03 16:00:00輸出應(yīng)將所有不在開始和結(jié)束時間范圍內(nèi)的值分配為零,并保留過濾器中指定的開始和結(jié)束時間的值。我嘗試對開始時間和結(jié)束時間同時應(yīng)用兩個過濾器,但沒有用。任何幫助,將不勝感激。
查看完整描述

2 回答

?
米脂

TA貢獻(xiàn)1836條經(jīng)驗 獲得超3個贊

想法是在列表理解中創(chuàng)建所有掩碼Series.between,然后加入logical_orbynp.logical_or.reduce并最后傳遞給Series.where

print (df1)

? ? ? ? ? ? Timestamp? ? ?Value

0 2020-01-13 00:00:00 -68.95370 <- changed data for match

1 2020-01-01 00:05:00 -67.90175

2 2020-01-01 00:10:00 -67.45966

3 2020-01-01 00:15:00 -67.07624

4 2020-01-01 00:20:00 -67.30549

5 2020-07-01 00:00:00 -65.34212


L = [df1['Timestamp'].between(s, e) for s, e in df2[['start_time','end_time']].values]

m = np.logical_or.reduce(L)


df1['Value'] = df1['Value'].where(m, 0)

print (df1)

? ? ? ? ? ? Timestamp? ? Value

0 2020-01-13 00:00:00 -68.9537

1 2020-01-01 00:05:00? ?0.0000

2 2020-01-01 00:10:00? ?0.0000

3 2020-01-01 00:15:00? ?0.0000

4 2020-01-01 00:20:00? ?0.0000

5 2020-07-01 00:00:00? ?0.0000


查看完整回答
反對 回復(fù) 2023-04-25
?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊

使用合并方法和查詢的外部連接的解決方案:

print(df1)

? ? ? ? ? ? timestamp? ? ?Value <- changed Timestamp to timestamp to avoid name conflict in query

0 2020-01-13 00:00:00 -68.95370 <- also changed data for match

1 2020-01-01 00:05:00 -67.90175

2 2020-01-01 00:10:00 -67.45966

3 2020-01-01 00:15:00 -67.07624

4 2020-01-01 00:20:00 -67.30549

5 2020-07-01 00:00:00 -65.34212


df1.loc[df1.index.difference(df1.assign(key=0).merge(df2.assign(key=0), how = 'outer')\

? ? ? ? ? ?.query("timestamp >= start_time and timestamp < end_time").index),"Value"] = 0

結(jié)果:


? ? ? ? ? ? timestamp? ? Value

0 2020-01-13 00:00:00 -68.9537

1 2020-01-01 00:05:00? ?0.0000

2 2020-01-01 00:10:00? ?0.0000

3 2020-01-01 00:15:00? ?0.0000

4 2020-01-01 00:20:00? ?0.0000

5 2020-07-01 00:00:00? ?0.0000

鍵assign(key=0)被添加到兩個數(shù)據(jù)幀以產(chǎn)生笛卡爾積。


查看完整回答
反對 回復(fù) 2023-04-25
  • 2 回答
  • 0 關(guān)注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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