亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

當您的數據不在偶數時間間隔時,是否有一種快速的方法可以在偶數時間間隔

當您的數據不在偶數時間間隔時,是否有一種快速的方法可以在偶數時間間隔

楊__羊羊 2023-04-18 11:03:26
假設我有一個數據框,其中索引是時間戳。但是,時間戳的間隔不均勻,所以我想讓它均勻。例如,我想將我的時間間隔設置為 1 分鐘的時間間隔。我想對從 t0 到 t1 的所有值求和,然后求和 t1 處的值。我一直在做的方式是通過循環。首先,我創建了一個包含開始時間和結束時間的時間戳列表。然后我將我的數據幀子集化為一個小數據幀,然后對該小數據幀進行計算(在本例中為總和)。然后我將我的值保存到列表中。并重復。不幸的是,這需要很長時間。有沒有更快的方法來做到這一點?我在非常小的時間范圍內處理數據,所以我認為用 0 數據創建額外的行并使用內置的滾動求和函數是沒有意義的......數據示例如下:2020-04-01 00:03:48.197028     12020-04-01 00:24:07.186631    112020-04-01 00:24:07.200361     52020-04-01 00:24:07.204382     12020-04-01 00:24:07.208525    13我想將其轉換為類似的東西:2020-04-01 00:24:00.000000     sum(23:59 to 24:00)2020-04-01 00:24:01.000000     sum(24:00 to 24:01)2020-04-01 00:24:02.000000     sum(24:01 to 24:02)2020-04-01 00:24:03.000000     sum(24:02 to 24:03)2020-04-01 00:24:04.000000     sum(24:03 to 24:04)
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

創建一個均勻間隔的日期時間索引,將其應用于您的數據,并使用均勻間隔的索引對數據框進行滾動求和。由于這將在 numpy/pandas 中發生,因此它比對數據進行 Python 循環要快得多。


使用示例中的數據并假設毫秒間隔:


df = """2020-04-01 00:03:48.197028\t1

2020-04-01 00:24:07.186631\t11

2020-04-01 00:24:07.200361\t5

2020-04-01 00:24:07.204382\t1

2020-04-01 00:24:07.208525\t13"""


# Reading the sample dataframe

from io import StringIO

mfile = StringIO(df)

adf = pd.read_csv(mfile, sep="\t")

adf.columns =  ['mtimestamp', 'mnumber']

adf.mtimestamp = pd.to_datetime(adf.mtimestamp)


# Creating a proper datetime index

adf = adf.set_index(pd.DatetimeIndex(adf['mtimestamp']))

adf = adf.drop(columns='mtimestamp')


# Resampling and summing

adf.resample('1ms').sum()

產量


                        mnumber

mtimestamp  

2020-04-01 00:24:07.186 11

2020-04-01 00:24:07.187 0

2020-04-01 00:24:07.188 0


查看完整回答
反對 回復 2023-04-18
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號