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

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

Pandas DataFrame 在滿足條件的前幾行中查找最接近的索引

Pandas DataFrame 在滿足條件的前幾行中查找最接近的索引

阿波羅的戰(zhàn)車 2022-08-02 18:34:03
我有以下數(shù)據(jù)幀:df1    t       A0   23:00   21   23:01   12   23:02   23   23:03   24   23:04   65   23:05   56   23:06   47   23:07   98   23:08   79   23:09   1010  23:10   8對(duì)于每個(gè)(此處簡(jiǎn)化了增量,在現(xiàn)實(shí)生活中不均勻分布),我想找到(如果有的話)前5分鐘內(nèi)的最新時(shí)間。我想得到:ttrA(t)- A(tr) >= 4    t       A    tr0   23:00   21   23:01   12   23:02   23   23:03   24   23:04   6    23:035   23:05   5    23:016   23:06   47   23:07   9    23:068   23:08   79   23:09   10   23:0610  23:10   8    23:06目前,我可以使用將每行與上一行進(jìn)行比較,例如.shift(-1)cond = df1['A'] >= df1['A'].shift(-1) + 4我怎樣才能及時(shí)看到更遠(yuǎn)的地方?
查看完整描述

2 回答

?
慕姐4208626

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

假設(shè)你的數(shù)據(jù)是連續(xù)的,那么你可以做通常的移位:


df1['t'] = pd.to_timedelta(df1['t'].add(':00'))


df = pd.DataFrame({i:df1.A - df1.A.shift(i) >= 4 for i in range(1,5)})


df1['t'] - pd.to_timedelta('1min') * df.idxmax(axis=1).where(df.any(1))

輸出:


0         NaT

1         NaT

2         NaT

3         NaT

4    23:03:00

5    23:01:00

6         NaT

7    23:06:00

8         NaT

9    23:06:00

10   23:06:00

dtype: timedelta64[ns]


查看完整回答
反對(duì) 回復(fù) 2022-08-02
?
躍然一笑

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

我添加了一個(gè)索引并使用 ,它現(xiàn)在包括了簡(jiǎn)單索引窗口之外的時(shí)間窗口功能。datetimerolling()


import pandas as pd

import numpy as np

import datetime


df1 = pd.DataFrame({'t' : [

        datetime.datetime(2020, 5, 17, 23, 0, 0),

        datetime.datetime(2020, 5, 17, 23, 0, 1),

        datetime.datetime(2020, 5, 17, 23, 0, 2),

        datetime.datetime(2020, 5, 17, 23, 0, 3),

        datetime.datetime(2020, 5, 17, 23, 0, 4),

        datetime.datetime(2020, 5, 17, 23, 0, 5),

        datetime.datetime(2020, 5, 17, 23, 0, 6),

        datetime.datetime(2020, 5, 17, 23, 0, 7),

        datetime.datetime(2020, 5, 17, 23, 0, 8),

        datetime.datetime(2020, 5, 17, 23, 0, 9),

        datetime.datetime(2020, 5, 17, 23, 0, 10)

        ], 'A' : [2,1,2,2,6,5,4,9,7,10,8]}, columns=['t', 'A'])

df1.index = df1['t']

df2 = df1

cond = df1['A'] >= df1.rolling('5s')['A'].apply(lambda x: x[0] + 4)

result = df1[cond]


t                         A

2020-05-17 23:00:04       6

2020-05-17 23:00:05       5

2020-05-17 23:00:07       9

2020-05-17 23:00:09      10

2020-05-17 23:00:10       8


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

添加回答

舉報(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)