简化下列语句:for i in range(len(data2_0_time3)): if (np.isnan(data2_0_time3.iat[i,0])==True): if 3<=i<=len(data2_0_time3)-4: data2_0_time3.loc[i,'speed_391_24': 'speed_391_22'] = data2_0_time3.iloc[i-3:i,0:3].fillna(0).values.mean(axis=0) elif i>len(data2_0_time3)-4: cols = ['speed_391_24', 'speed_391_23', 'speed_391_22'] rolling_df = data2_0_time3.loc[:i][cols].rolling(window=3, min_periods=1) data2_0_time3.loc[i, cols] = rolling_df.mean().iloc[-1].values else: data2_0_time3.loc[i, ['speed_391_24', 'speed_391_23', 'speed_391_22']] = np.nan_to_num(data2_0_time3.iloc[max(i-3,0):i+1, [0,1,2]].rolling(window=4, min_periods=1).sum().iloc[-1]/min(i+1, 4))
时间: 2023-06-08 16:06:17 浏览: 67
简化后的语句如下:
for i in range(len(data2_0_time3)):
if np.isnan(data2_0_time3.iat[i,0]):
if 3<=i<=len(data2_0_time3)-4:
data2_0_time3.iloc[i,5:8] = data2_0_time3.iloc[i-3:i,0:3].fillna(0).mean(axis=0)
elif i>len(data2_0_time3)-4:
cols = ['speed_391_24', 'speed_391_23', 'speed_391_22']
rolling_df = data2_0_time3.loc[:i][cols].rolling(window=3, min_periods=1)
data2_0_time3.loc[i, cols] = rolling_df.mean().iloc[-1].values
else:
data2_0_time3.iloc[i,5:8] = np.nan_to_num(data2_0_time3.iloc[max(i-3,0):i+1, [0,1,2]].rolling(window=4, min_periods=1).sum().iloc[-1]/min(i+1, 4))
注意:简化后的语句代码和原代码的功能一致,只是将一些重复或不必要的代码省略或合并,使其更简洁易懂。