Как в np.where обратиться к своему предыдущему значению?
Таблица:
| Curr | Prev |
| --- | --- |
| 174 | 181 |
| 174 | 174 |
| 174 | 174 |
| 174 | 174 |
| 174 | 174 |
| 174 | 174 |
| 183 | 174 |
| 183 | 183 |
| 183 | 183 |
| 183 | 183 |
| 177 | 183 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 177 | 177 |
| 184 | 177 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
| 184 | 184 |
Код:
x=pd.np.where(Location['Curr']>Location['Prev'],Location['Curr'],#x[-1])
Как в np.where обратиться к своему предыдущему значению (x[-1])?
Хочу получить наподобие этого:
A=[]
for i in range(1,len(Location)):
if Location['Curr'].iloc[i]>Location['Prev'].iloc[i]:
A.append(Location['Curr'].iloc[i])
else:
if len(A)>0:
A.append(A[-1])
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Если я правильно понял вопрос, то, вероятно, такое решение будет работать:
res = Location.copy()
res.loc[1:,"Curr"] = res.loc[1:,"Curr"].where(df["Curr"]>df["Prev"], np.nan, axis=0)
res["Curr"] = res["Curr"].fillna(method="ffill")
res:
Curr Prev
0 174.0 181
1 174.0 174
2 174.0 174
3 174.0 174
4 174.0 174
5 174.0 174
6 183.0 174
7 183.0 183
8 183.0 183
9 183.0 183
10 183.0 183
11 183.0 177
12 183.0 177
13 183.0 177
14 183.0 177
15 183.0 177
16 183.0 177
17 183.0 177
18 183.0 177
19 183.0 177
20 184.0 177
21 184.0 184
22 184.0 184
23 184.0 184
24 184.0 184
25 184.0 184
26 184.0 184
27 184.0 184
28 184.0 184
29 184.0 184