我正在寻找一个代码来查找符合条件的行并保留这些行。
在图片示例中,我希望保留amt 1 =〉5且amt 2〈5的所有苹果,还希望保留amt 1 =〉1且amt 2〈5的香蕉(图片中以红色突出显示),列表中还有许多其他水果需要过滤(可能有10种水果)。
image example
目前,我正在单独筛选(即创建过滤掉红色和小苹果的 Dataframe 和过滤掉绿色和大香蕉的另一 Dataframe 并且之后使用concat将 Dataframe 连接在一起)。然而,这个过程需要很长的时间来运行,因为数据集是巨大的。我正在寻找一个更快的方法(就像在 Dataframe 中过滤它一样,而不必创建新的 Dataframe )。我还必须使用列索引而不是列名,因为列名会根据日期而变化。
希望我说的有道理。会很感激任何帮助!
2条答案
按热度按时间qjp7pelc1#
我不太确定我是否理解您的要求,因为我不明白要保留的行的条件是如何制定的。
Dataframe 的
query
方法可以用来合并多个标准来选择数据:aelbi1ox2#
您可以按以下方式将
filter
与itertuples
结合使用给出输出
说明:
keep
是函数,它应该返回行True
以保留要丢弃行False
。.itertuples()
提供元组的可迭代项,这些元组被馈送到filter
,filter
选择其中keep
计算为True
的记录,这些选定行用于创建新DataFrame
完成后,我设置索引,使Index
与原始DataFrame
相对应根据您使用情况,您可以选择不设置索引