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

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

根據(jù)最接近的小時和日期選擇行

根據(jù)最接近的小時和日期選擇行

蝴蝶刀刀 2023-12-05 15:21:50
我有兩種數(shù)據(jù),一種是數(shù)據(jù)幀,一種是現(xiàn)在許多列表包含有關(guān)圖像采集時間的數(shù)據(jù),因此數(shù)據(jù)如下所示:pandas 數(shù)據(jù)框(日期和時間為 23/6 -04/07,每天 07:00-17:00):>>>timestamp                    date             hour        person_1   person_2 ............0 2019-06-23 07:00:00          2019-06-23       07:00:00     0.124      0.4311 2019-06-23 07:03:00          2019-06-23       07:03:00     0.131      0.4382 2019-06-23 07:06:00          2019-06-23       07:06:00     0.154      0.4333 2019-06-23 07:09:00          2019-06-23       07:09:00     0.164      0.441....2 2019-07-04 16:57:00          2019-07-04       16:57:00     0.864      0.6753 2019-07-04 17:00:00          2019-07-04       17:00:00     0.823      0.631每張圖像拍攝的時間以列表的格式(“小時”一詞后面的數(shù)字代表日期):#Hours that the image was takenHours23=['07:00','08:00','09:32','10:14','11:15','12:17','13:03','14:41','15:04','17:05']Hours24=['07:00','08:13','09:02','10:09','11:02','12:03','14:09','16:00','17:00']Hours25=['08:15','09:02','10:02','11:02','12:02','14:02','15:02','16:00','17:00']...Hours3=['07:00','08:02','09:02','10:02','11:02','12:02','13:03','14:03','15:02','16:01','17:00']Hours4=['07:15','08:02','12:02','13:03']我想根據(jù)這些小時列表選擇數(shù)據(jù)框中的行,例如,選擇最接近圖像的小時的行。例如,對于 23/6,圖像的第一個小時是 07:00,然后是 08:00,然后是 09:32...所以我想在我的數(shù)據(jù)框中僅包含該時間最接近的行到圖像小時。我看到有多種方法可以過濾它,正如這里提到的(在 Pandas 中查找最接近給定時間的 DataFrame 行),但我想考慮到每個日期都有不同的時間這一事實(shí)。所以結(jié)果應(yīng)該是這樣的:>>>timestamp                    date             hour        person_1   person_2 ............0 2019-06-23 07:00:00          2019-06-23       07:00:00     0.124      0.4311 2019-06-23 08:01:00          2019-06-23       07:00:00     0.108      0.3701 2019-06-23 09:32:00          2019-06-23       07:00:00     0.101      0.360...
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊

您的時間列表不是一種理想的格式,因此我將向您展示一個日期的方法,其中數(shù)據(jù)框h23是手動構(gòu)建的。如果需要,您可以對其進(jìn)行編碼以構(gòu)建一個包含所有時間的數(shù)據(jù)框。


基本前提是制作一個數(shù)據(jù)框h23,例如包含照片的所有時間戳。使用它與 df 時間戳合并,使用pd.merge_asof它可以進(jìn)行最接近的時間匹配。 nearest意味著實(shí)際時間可以是之前或之后,但是如果時間需要是事件之前的最近時間,則還有 和 的backward選項(xiàng)。forward


import pandas as pd


df = pd.DataFrame({'timestamp': {0: '2019-06-23 07:00:00',

  1: '2019-06-23 07:03:00',

  2: '2019-06-23 07:06:00',

  3: '2019-06-23 07:09:00'},

 'date': {0: '2019-06-23', 1: '2019-06-23', 2: '2019-06-23', 3: '2019-06-23'},

 'hour': {0: '07:00:00', 1: '07:03:00', 2: '07:06:00', 3: '07:09:00'},

 'person_1': {0: 0.124, 1: 0.131, 2: 0.154, 3: 0.16399999999999998},

 'person_2': {0: 0.431, 1: 0.43799999999999994, 2: 0.433, 3: 0.441}})


df['timestamp'] = pd.to_datetime(df['timestamp'])


Hours23=['07:00','08:00','09:32','10:14','11:15','12:17','13:03','14:41','15:04','17:05']


h23 = pd.DataFrame({'Time':Hours23, 'Day':'2019-06-23'})


h23['timestamp'] = pd.to_datetime(h23['Day'] + " " + h23['Time'])


pd.merge_asof(h23,df, on='timestamp', direction='nearest').drop(columns=['Day','Time'])

輸出


              timestamp      date       hour    person_1    person_2

0   2019-06-23 07:00:00 2019-06-23  07:00:00    0.124   0.431

1   2019-06-23 08:00:00 2019-06-23  07:09:00    0.164   0.441

2   2019-06-23 09:32:00 2019-06-23  07:09:00    0.164   0.441

3   2019-06-23 10:14:00 2019-06-23  07:09:00    0.164   0.441

4   2019-06-23 11:15:00 2019-06-23  07:09:00    0.164   0.441

5   2019-06-23 12:17:00 2019-06-23  07:09:00    0.164   0.441

6   2019-06-23 13:03:00 2019-06-23  07:09:00    0.164   0.441

7   2019-06-23 14:41:00 2019-06-23  07:09:00    0.164   0.441

8   2019-06-23 15:04:00 2019-06-23  07:09:00    0.164   0.441

9   2019-06-23 17:05:00 2019-06-23  07:09:00    0.164   0.441


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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