如何在熊猫数据框中找到标准匹配上方和下方的x行,然后将它们保存为新的df?

Posted

技术标签:

【中文标题】如何在熊猫数据框中找到标准匹配上方和下方的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? 【发布时间】:2020-08-26 13:01:33 【问题描述】:

我目前有一个 pandas 数据框,它使用 df.column.pct_change() 计算出 %change,我想过滤所有变化大于 30% 的行。我已经可以做到这一点。然后使用输出,我想取行上方的行,百分比变化大于 30,然后取下面的 6 行,如果 %change 在数据的最后 6 行内,则以某种方式忽略它,所以我没有得到想要使用不存在的数据的错误。

日期......打开......关闭......百分比变化...... XXX…………………………………………………………………… XXX…………………………………………………………………… AAA........ xxx............ xxx............ xxx...... BBB............ xxx............ 31%............ xxx...... CCC............ xxx............ xxx............ xxx...... DDD............ xxx............ xxx............ xxx...... EEE........ xxx............ xxx............ xxx...... FFF............ xxx............ xxx............ xxx...... GGG........ xxx............ xxx............ xxx...... HHH........ xxx............ xxx............ xxx...... 如果那是我的表并且 BBB 行有 31% 的变化,我希望程序将行 AAA 一直保存到 HHH 作为新的数据帧。

【问题讨论】:

【参考方案1】:

试试这个:

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


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

谢谢,安舒尔

【讨论】:

以上是关于如何在熊猫数据框中找到标准匹配上方和下方的x行,然后将它们保存为新的df?的主要内容,如果未能解决你的问题,请参考以下文章

如何查找在熊猫数据框中出现最多的行项目

如何识别和标记熊猫数据框中的相似行

在熊猫数据框中找到倒数行

在熊猫数据框中选择行[重复]

根据列值从熊猫数据框中提取行

Google Cloud Logging:显示匹配行上方和下方的行