考慮下面的資料框。我想計算價格列的當前值是否大于最后 10 個值。我正在考慮使用 shift,但不確定如何使用最后 10 行。
price
220 3.337
221 3.320
222 3.290
223 3.291
224 3.312
225 3.255
226 3.216
227 3.245
228 3.275
229 3.282
230 3.370
231 3.396
232 3.375
233 3.369
234 3.335
235 3.344
236 3.365
237 3.373
238 3.414
239 3.378
輸出資料框:
price isGreater
220 3.337 NaN
221 3.320 NaN
222 3.290 NaN
223 3.291 NaN
224 3.312 NaN
225 3.255 NaN
226 3.216 NaN
227 3.245 NaN
228 3.275 NaN
229 3.282 NaN
230 3.370 1.0
231 3.396 1.0
232 3.375 NaN
233 3.369 NaN
234 3.335 NaN
235 3.344 NaN
236 3.365 NaN
237 3.373 NaN
238 3.414 1.0
239 3.378 NaN
uj5u.com熱心網友回復:
您可以使用rolling max來獲取最后 10 行的最大值,如果大于它,則它大于或等于所有(包括 self,因此 1):
df['isGreater'] = df['price'].ge(df['price'].rolling(10 1).max())
注意。從技術上講,如果您真的只想比較前幾行而不是自己(例如使用嚴格比較),您需要轉移:
df['isGreater'] = df['price'].gt(df['price'].shift().rolling(10).max())
輸出:
price isGreater
220 3.337 False
221 3.320 False
222 3.290 False
223 3.291 False
224 3.312 False
225 3.255 False
226 3.216 False
227 3.245 False
228 3.275 False
229 3.282 False
230 3.370 True
231 3.396 True
232 3.375 False
233 3.369 False
234 3.335 False
235 3.344 False
236 3.365 False
237 3.373 False
238 3.414 True
239 3.378 False
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453446.html
上一篇:計算特定時間段的周數
