簡體   English   中英

如何在 pandas 數據幀中查找條件匹配上方和下方的 x 行,然后將它們保存為新的 df?

[英]How to find x rows above and below a criteria match in pandas data-frame and then save them as a new df?

我目前有一個 pandas dataframe 使用 df.column.pct_change() 計算出 %change,我想過濾所有變化大於 30% 的行。 我已經可以做到這一點。 然后使用 output 我想取行上方的行,其百分比變化大於 30,然后取下面的 6 行,如果 %change 在數據的最后 6 行內,則以某種方式忽略,所以我沒有得到想要使用不存在的數據的錯誤。

日期......打開......關閉......百分比變化......
XXX……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………xxx的
XXX……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………xxx的
AAA........ xxx ...... xxx ...... xxx ......
BBB............ xxx............ 31%............ xxx......
CCC………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
DDD…………xxx………………………………………………………………………………………………………………………………………………………………………………………………………………………………
EEE…………xxx………………………………………………………………………………………………………………………………………………………………………………………………
FFF…………xxx………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
GGG…………xxx…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
HHH........ xxx............ xxx............ xxx......
如果那是我的表並且 BBB 行有 31% 的變化,我希望程序將行 AAA 一直保存到 HHH 作為新的 dataframe。

嘗試這個:

df_upper = df.loc[df.PERCENTCHANGE <= 30]
df_lower = df.loc[df.PERCENTCHANGE > 30]


df_required = pd.concat([df_upper.tail(1), df_lower])

謝謝,安舒爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM