frequency.append((df_X.iloc[:, 22] < i + 100).sum() - (df_X.iloc[:, 22] < i)
时间: 2024-04-16 17:27:38 浏览: 32
你好!对于您的问题,您可以使用以下代码来计算列索引为22的DataFrame列中的特定范围内的值的频率:
```python
i = 100 # 设置范围的下限
frequency = []
for i in range(0, max(df_X.iloc[:, 22]), 100):
count = ((df_X.iloc[:, 22] < i + 100).sum()) - ((df_X.iloc[:, 22] < i).sum())
frequency.append(count)
```
这里,我们首先设置范围的下限为100,然后使用循环迭代来计算每个范围内的值的频率。在循环中,我们使用了`.sum()`函数来计算DataFrame列中满足条件的值的数量,并将其添加到`frequency`列表中。
请注意,这里假设您的DataFrame名为`df_X`,并且要计算频率的列索引为22。您可以根据实际情况进行适当的更改。
希望对您有所帮助!如果您还有其他问题,请随时提问。
相关问题
优化这段代码for i in range(14): x_train_YS, y_train_YS = data.iloc[0:418+20*i,list(range(0))+list(range(8,95))],data.iloc[0:418+20*i,95] x_test_YS, y_test_YS = data.iloc[418+20*i:438+20*i,list(range(0))+list(range(8,95))],data.iloc[418+20*i:438+20*i,95] x_train_YS_1,y_train_YS_1 = x_train_YS.iloc[1:418+20*i,1:87].values,y_train_YS.iloc[1:418+20*i,87].values x_test_YS_1,y_test_YS_1 = x_test_YS.iloc[418+20*i:438+20*i,1:87].values,y_test_YS.iloc[418+20*i:438+20*i,87].values
可以对这段代码进行如下优化:
```
start = 0
end = 418
cols = list(range(0)) + list(range(8, 95))
cols_1 = list(range(1, 87))
train_data = []
test_data = []
for i in range(14):
x_train_YS, y_train_YS = data.iloc[start:end, cols], data.iloc[start:end, 95]
x_test_YS, y_test_YS = data.iloc[start+418:end+438, cols], data.iloc[start+418:end+438, 95]
x_train_YS_1, y_train_YS_1 = x_train_YS.iloc[1:end-1, cols_1].values, y_train_YS.iloc[1:end-1].values
x_test_YS_1, y_test_YS_1 = x_test_YS.iloc[:, cols_1].values, y_test_YS.iloc[:, -1].values
train_data.append((x_train_YS_1, y_train_YS_1))
test_data.append((x_test_YS_1, y_test_YS_1))
start = end
end += 20 * (i + 2)
```
这样,我们可以将数据处理部分的代码放入循环中,避免了重复代码,同时将结果存储在列表中,便于后续处理。
train_x, train_y = [], [] for i in range(look_back, len(train_data)): x = [] for j in range(len(svr_models)): x.append(svr_models[j].predict(np.reshape(low_freq_imfs.iloc[i-look_back:i, j].values, (1, -1)))[0]) x.append(lstm_model.predict(np.reshape(high_freq_imfs.iloc[i-look_back:i, :].values, (1, look_back, -1)))[0]) train_x.append(x) train_y.append(train_data.iloc[i, 1]) train_x, train_y = np.array(train_x), np.array(train_y) stack_model = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1) stack_model.fit(train_x, train_y) 将以上代码按规范排列,突出显示缩进情况
```
train_x, train_y = [], []
for i in range(look_back, len(train_data)):
x = []
for j in range(lenvr_models)):
x.append(svr_models[j].predict(np.reshape(low_freq_imfs.iloc[i-look_back:i, j].values, (1, -1)))[0])
x.append(lstm_model.predict(np.reshape(high_freq_imfs.iloc[i-look_back:i, :].values, (1, look_back, -1)))[0])
train_x.append(x)
train_y.append(train_data.iloc[i, 1])
train_x, train_y = np.array(train_x), np.array(train_y)
stack_model = SVR(kernel='rbf', C=100, gamma=0.1, epsilon=.1)
stack_model.fit(train_x, train_y)
```