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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何定期選擇帶有偏移量的數(shù)據(jù)幀行?

如何定期選擇帶有偏移量的數(shù)據(jù)幀行?

蕭十郎 2022-11-09 16:39:17
我想每隔 n 小時(shí)選擇一次數(shù)據(jù)框的行。我可以使用df[::int(period)],但我不知道時(shí)間序列何時(shí)開(kāi)始。另外,我需要將 anoffset應(yīng)用于period,因此假設(shè)我的數(shù)據(jù)框從午夜開(kāi)始,它會(huì)給出:period = 6 offset = 0hours = [0, 6, 12, 18]offset = 3hours = [3, 9, 15, 21]我怎么能用最少的行做到這一點(diǎn)?這就是我的數(shù)據(jù)框的樣子:2020-05-06 00:00:00+00:00  02020-05-06 01:00:00+00:00  12020-05-06 02:00:00+00:00  22020-05-06 03:00:00+00:00  32020-05-06 04:00:00+00:00  42020-05-06 05:00:00+00:00  52020-05-06 06:00:00+00:00  62020-05-06 07:00:00+00:00  72020-05-06 08:00:00+00:00  82020-05-06 09:00:00+00:00  92020-05-06 10:00:00+00:00  102020-05-06 11:00:00+00:00  112020-05-06 12:00:00+00:00  122020-05-06 13:00:00+00:00  132020-05-06 14:00:00+00:00  142020-05-06 15:00:00+00:00  152020-05-06 16:00:00+00:00  162020-05-06 17:00:00+00:00  172020-05-06 18:00:00+00:00  182020-05-06 19:00:00+00:00  192020-05-06 20:00:00+00:00  202020-05-06 21:00:00+00:00  212020-05-06 22:00:00+00:00  222020-05-06 23:00:00+00:00  23例如,周期 6 和偏移量 0 我想:2020-05-06 00:00:00+00:00  02020-05-06 06:00:00+00:00  62020-05-06 12:00:00+00:00  122020-05-06 18:00:00+00:00  18對(duì)于第 4 期和第 2 期,我想:2020-05-06 02:00:00+00:00  22020-05-06 06:00:00+00:00  62020-05-06 10:00:00+00:00  102020-05-06 14:00:00+00:00  142020-05-06 18:00:00+00:00  182020-05-06 22:00:00+00:00  22這就是我設(shè)法做到這一點(diǎn)的方法,但是這種方法不靈活,并且不支持 23 之后的偏移。df.loc[[ind for ind in df.index if                       (ind.hour == 0 + offset) |                       (ind.hour == 6 + offset) |                       (ind.hour == 12 + offset) |                       (ind.hour == 18 + offset)                       ]]
查看完整描述

3 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

from datetime import date

# dummy data

df = pd.DataFrame({'num':np.arange(0,23+1),

                  'date':pd.date_range(date(2020,5,6),periods=23+1,freq='H')})

df = df.set_index('date')


df.loc[df.shift(offset).dropna()[::period].index]


查看完整回答
反對(duì) 回復(fù) 2022-11-09
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

不確定這是否是您的目標(biāo):pandas date_range

如果小時(shí)數(shù)是 6 并且沒(méi)有偏移:


#set the date as index

df = df.set_index(1)

#get the very first and last dates from the index :

start = df.index[0]

end = df.index[-1]


df.loc[pd.date_range(start=start,freq='6H',end=end)]


                            2

2020-05-06 00:00:00+00:00   0

2020-05-06 06:00:00+00:00   6

2020-05-06 12:00:00+00:00   12

2020-05-06 18:00:00+00:00   18

如果偏移量為 2 且小時(shí)數(shù) == 4 :


df.loc[pd.date_range(start=start + pd.offsets.Hour(2),freq='4H',end=end)]


                            2

2020-05-06 02:00:00+00:00   2

2020-05-06 06:00:00+00:00   6

2020-05-06 10:00:00+00:00   10

2020-05-06 14:00:00+00:00   14

2020-05-06 18:00:00+00:00   18

2020-05-06 22:00:00+00:00   22

我的列標(biāo)簽是 1,2。(通過(guò)剪貼板讀取數(shù)據(jù)時(shí)發(fā)生)


查看完整回答
反對(duì) 回復(fù) 2022-11-09
?
12345678_0001

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

你可以使用這個(gè):


print (s[(s.index.hour - offset)%period==0])

2020-05-06 00:00:00     0

2020-05-06 06:00:00     6

2020-05-06 12:00:00    12

2020-05-06 18:00:00    18

Freq: 6H, dtype: int64

并且有周期 4 和偏移量 2


period = 4

offset = 2

print (s[(s.index.hour - offset)%period==0])

2020-05-06 02:00:00     2

2020-05-06 06:00:00     6

2020-05-06 10:00:00    10

2020-05-06 14:00:00    14

2020-05-06 18:00:00    18

2020-05-06 22:00:00    22

dtype: int64


查看完整回答
反對(duì) 回復(fù) 2022-11-09
  • 3 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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