我有一个pandas数据帧,我创建了一个掩码,将一个序列过滤到一个特定的操作类型。最后,我将进行分组聚合,但在此之前,我需要对数据进行质量控制,以便正确分组。所以我遇到的问题是,我的操作类别有一些随机空值,我需要更改,所以我需要做的是检查上一个和下一个操作,然后如果两者都相同,那么我需要将当前节点更改为该操作类型。你知道吗
注:这是一个时间序列数据帧
我正在尝试优化这个方法,因为最终的数据集可能会很大。我试过apply和lambda函数,但它们不能正常工作…可能是用户错误。你知道吗
def prep_rot_data(ops_rot_cur, ops_rot_lag, ops_rot_lead):
# psuedo code
'''
if ops_rot_cur == rotate then return 'rotate'
elif ops_rot_cur == None and ops_rot_lag == 'rotate' and ops_rot_lead == 'rotate' then return 'rotate'
'''
if 'rotate' in ops_rot_cur :
return 'rotate'
elif 'na' in ops_rot_cur and 'rotate' in ops_rot_lag and 'rotate' in ops_rot_lead:
return 'rotate'
c_df['rig_ops_rot'] = np.where(c_df['operation'] == 'Rotary Drill','rotate', None) # rotate ops mask
#c_df['rig_ops_rot_test'] = c_df.apply(lambda x: prep_rot_data(x['rig_ops_rot'], x['rig_ops_rot'].shift(1), x['rig_ops_rot'].shift(-1)), axis=1)
我不确定计算多条件签入的最有效方法是什么,因此可能有更有效的方法来执行此操作。我希望操作在解释正确的结果之前同时检查滞后节点和超前节点
您想要的输出不够清晰,但是可以处理多个条件1.数据帧对象,如伪代码所示
您可以尝试以下操作,假设您的dfmy\u df包含ops\u rot\u cur、ops\u rot\u lag和ops\u rot\u lead列
,或者
相关问题 更多 >
编程相关推荐