python - 循环遍历一列需要永远
问题描述
我有以下功能
condition = (df_sensor_data['Indgang 0103 Duplicate'] == 1) & (df_sensor_data['Indgang 0102 Duplicate'] == 0)
condition_2 = (df_sensor_data['Indgang 0103 Duplicate'] == 0) & (df_sensor_data['Indgang 0102 Duplicate'] >= 15)
def asdf(sensor_data, condition):
f = sensor_data.loc[condition]
filtered_data = pd.DataFrame()
for _, row in f.iterrows():
start = row['Date']
stop = row['Date'].to_pydatetime() + dt.timedelta(minutes=20)
condition = sensor_data['Date'].between(start, stop, inclusive=True)
new_data = sensor_data.loc[condition, :].copy()
filtered_data = pd.concat([filtered_data, new_data], sort=True)
filtered_data = filtered_data.sort_values('Date').reset_index(drop=True)
aggregation = { 'JOBNUM': 'first', 'Non Duplicate 0101' : 'sum' }
return filtered_data.groupby('JOBNUM').agg(aggregation)
f_data = asdf(df_sensor_data, condition)
f_data2 = asdf(df_sensor_data, condition_2)
如果我使用第一个条件运行该函数,则一切正常。f_data 数据框被创建,我可以很好地查看它的内容。但是,如果我使用第二个条件运行该函数,我的 Spyder 会一直循环下去。
可能是什么原因?这两个条件之间的代码并没有那么不同,所以我看不出是什么导致我的程序永远循环。
PS:第一个条件得到一个 160 行的数据帧,而第二个有超过 6000 行。这会在编译时间之间产生差异吗?无论哪种方式,它看起来仍然比它应该拥有的更多。
解决方案
推荐阅读
- c++ - VC++6 线程安全静态初始化
- javascript - 单击时缩放多个 div
- vb.net - vb.net 如何在 MenuStrip 内的 MDIparent 中水平获取活动和打开表单的列表?
- awk - 使用 awk / sed 从文件中查找键值对并将其替换为其他
- python - PYTHON:不增加列表元素的位置
- html - 使用 JSON-LD 进行现场审查
- javascript - HTML计算器不会显示任何东西
- ios - Swift 4,使用 Array 和 TableViewCell 存储和显示数据
- jquery - jQuery:获取输入的值并将其作为类添加到封闭标签?
- php - Magento 事件未在整页缓存上触发