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

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

Python/Pandas 基于窗口將關(guān)閉事件分組在一起

Python/Pandas 基于窗口將關(guān)閉事件分組在一起

月關(guān)寶盒 2023-09-12 17:29:05
我想將緊密發(fā)生的事件分組到父事件中。一個(gè)例子是這樣的:import pandas as pddf = pd.DataFrame(    [        ['2020-01-01 10:00', '1'],        ['2020-01-01 10:01', '2'],        ['2020-01-01 10:02', '3a'],        ['2020-01-01 10:02', '3b'],        ['2020-01-01 10:30', '4'],        ['2020-01-01 10:50', '5'],        ['2020-01-01 10:54', '6'],        ['2020-01-01 10:55', '7'],    ], columns=['event_time', 'event_id'])df['event_time'] = pd.to_datetime(df['event_time'])在上面的窗口大小為 1 分鐘的示例中,我想要的是每個(gè)事件的 +- 1 分鐘內(nèi)發(fā)生的所有其他事件的列表。所以像這樣:df = pd.DataFrame(    [        ['2020-01-01 10:00', '1', ['2']],        ['2020-01-01 10:01', '2', ['1','3a','3b']],        ['2020-01-01 10:02', '3a', ['2','3b']],        ['2020-01-01 10:02', '3b', ['3a', '2'],        ['2020-01-01 10:30', '4', None],        ['2020-01-01 10:50', '5', None],        ['2020-01-01 10:54', '6', ['7']],        ['2020-01-01 10:55', '7', ['6']],    ], columns=['event_time', 'event_id', 'related_event_id_list'])我?guī)缀跄軌蚪咏?pandas merge_asof:pd.merge_asof(df,df, on="event_time", tolerance=pd.Timedelta("1m"), allow_exact_matches=False, direction='nearest')但它似乎只想合并到一個(gè)最近的事件,而不是某種選項(xiàng)或方式來合并每行容差內(nèi)的所有事件(顯然只是在我的結(jié)果中獲得更多行,因此它更像是范圍)。我認(rèn)為對這樣的時(shí)間序列事件進(jìn)行分組一定是相當(dāng)常見的,但在 Pandas 中找不到任何明顯的函數(shù)來做到這一點(diǎn),或者也許我錯(cuò)過了一些東西。一如既往,如果我可以避免的話,盡量避免自己通過循環(huán)或類似的方式編寫代碼:)
查看完整描述

1 回答

?
holdtom

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

一個(gè)想法是過濾DataFrame每行并刪除原始行DataFrame.drop

td = pd.Timedelta("1m")

f = lambda x, y: df.loc[df['event_time'].between(y - td, y + td),

? ? ? ? ? ? ? ? ? ? ? ? 'event_id'].drop(x).tolist()

df['related_event_id_list'] = [f(k, v) for k, v in df['event_time'].items()]

print (df)

? ? ? ? ? ?event_time event_id related_event_id_list

0 2020-01-01 10:00:00? ? ? ? 1? ? ? ? ? ? ? ? ? ?[2]

1 2020-01-01 10:01:00? ? ? ? 2? ? ? ? ? ?[1, 3a, 3b]

2 2020-01-01 10:02:00? ? ? ?3a? ? ? ? ? ? ? ?[2, 3b]

3 2020-01-01 10:02:00? ? ? ?3b? ? ? ? ? ? ? ?[2, 3a]

4 2020-01-01 10:30:00? ? ? ? 4? ? ? ? ? ? ? ? ? ? []

5 2020-01-01 10:50:00? ? ? ? 5? ? ? ? ? ? ? ? ? ? []

6 2020-01-01 10:54:00? ? ? ? 6? ? ? ? ? ? ? ? ? ?[7]

7 2020-01-01 10:55:00? ? ? ? 7? ? ? ? ? ? ? ? ? ?[6]


查看完整回答
反對 回復(fù) 2023-09-12
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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