簡體   English   中英

如何使此按行操作執行器(python)?

[英]How to make this row-wise operation performant (python)?

我的問題很簡單,但是我無法解決這個問題:我有兩個數據框:

  1. 兩列的時間序列dataframeTimestampDataValue
  2. 具有startend時間戳和標簽的時間間隔dataframe

我想做的事:

在時間序列中添加第三列,該列將根據時間間隔dataframe yields標簽。

每個timepoint需要有一個由時間間隔dataframe指定的分配標簽。

此代碼有效:

TimeSeries_labelled = TimeSeries.copy(deep=True)
TimeSeries_labelled["State"] = 0
for index in Timeintervals_States.index:
    for entry in TimeSeries_labelled.index:
         if Timeintervals_States.loc[index,"start"] <= TimeSeries_labelled.loc[entry, "Timestamp"] <=     Timeintervals_States.loc[index,"end"]:
             TimeSeries_labelled.loc[entry, "State"] = Timeintervals_States.loc[index,"state"]

但這確實很慢。 我嘗試使用內置於過濾器代碼中的pyhton將其縮短和縮短,但失敗了。 請幫忙!

我不太了解TimeSeries,使用包含時間戳記的數據框作為datetime對象,您可以使用以下內容:

import pandas as pd
#Create the thrid column in the target dataframe
df_timeseries['label'] = pd.Series('',index=df_timeseries.index)
#Loop over the dataframe containing start and end timestamps
for index,row in df_start_end.iterrows():
    #Create a boolean mask to filter data
    mask = (df_timeseries['timestamp'] > row['start']) & (df_timeseries['timestamp'] < row['end']) 
    df_timeseries.loc[mask,'label'] = row['label']

這將使與掩碼條件匹配的時間序列數據幀的行具有該行的標簽,因為數據幀的每行都包含開始和結束時間戳記

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM