概念:计算两个时间之间的转换次数,并将计数作为列添加到数据帧中。开始时间和结束是数据帧中的前两列
样品日期
下面是我用来获取“计数数”列的代码
result = [] for i in range(0, len(df)): result.append(df[(df['Time_of_Fetch'] >= df.iloc[i]['Time_of_Fetch']) & (df['Time_of_Fetch'] < df.iloc[i]['Time_Completed']) & (df['Base'] == df.iloc[i]['Base'])].count()['Base']) df['Check_value'] = result
然而,当处理大量数据时,这种方法需要一些时间来完成计算
我已经尝试使用apply()
和lambda()
来减少运行时间,但仍然无法减少运行时间
下面是我已经厌倦的代码
df_108.assign = df_108.apply((lambda row :df_108[(df_108['Time_of_Fetch'] >= df_108['Time_of_Fetch']) & (df_108['Time_of_Fetch'] < df_108['Time_Completed'])& (df_108['Base'] == df_108['Base'])].count()['Base']),axis = 1)
如何重新编写以减少运行时间