如果行超出指定的限制,我将删除DF的所有列中的行.

我的代码是:

XDF= pd.DataFrame(columns=['A','B'],data=[[-10,20],[2,8],[4,1],[3,-1]])
print(xdf)
xdf_params_limits = pd.DataFrame(columns=['A','B'],index=['min','max'],data=[[0,1],[5,30]])
print(xdf_params_limits)
xdf_flt = xdf.apply(lambda x: (x[col]>xdf_params_limits[col].loc['min'])&(x[col]<xdf_params_limits[col].loc['max']) for col in xdf.columns, axis=1)
XDF= xdf[xdf_flt]

    A   B
0 -10  20
1   2   8
2   4   1
3   3  -1
     A   B
min  0   1
max  5  30

预期yields

XDF=

    A   B
1   2   8

当前输出:

     81 def ast_parse(self, source, filename='<unknown>', symbol='exec'):
     82     """Parse code to an AST with the current compiler flags active.
     83 
     84     Arguments are exactly the same as ast.parse (in the standard library),
     85     and are passed to the built-in compile function."""
---> 86     return compile(source, filename, symbol, self.flags | PyCF_ONLY_AST, 1)

SyntaxError: Generator expression must be parenthesized (2981748052.py, line 5)

推荐答案

使用带有两个面具的Simple boolean indexingall:

out = xdf.loc[(xdf.gt(xdf_params_limits.loc['min'])
              &xdf.lt(xdf_params_limits.loc['max'])
              ).all(axis=1)]

输出:

   A  B
1  2  8

中间体:

xdf.gt(xdf_params_limits.loc['min'])

       A      B
0  False   True
1   True   True
2   True  False
3   True  False

xdf.lt(xdf_params_limits.loc['max'])

      A     B
0  True  True
1  True  True
2  True  True
3  True  True

Python相关问答推荐

Pandas或pyspark跨越列创建

Python:根据创建时间合并两个收件箱

判断两极中N(N 2)列水平是否相等

Python在通过Inbox调用时给出不同的响应

获取Azure Pipelines以从pyproject.toml(而不是relevments_dev.文本)安装测试环境

收件箱转换错误- polars.exceptions. ComputeHelp- pandera(0.19.0b3)带有polars

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

Google Drive API获取文件计量数据

如何使用上下文管理器创建类的实例?

用gekko解决的ADE方程系统突然不再工作,错误消息异常:@错误:模型文件未找到.& &

韦尔福德方差与Numpy方差不同

更改键盘按钮进入'

两个pandas的平均值按元素的结果串接元素.为什么?

使用Python更新字典中的值

driver. find_element无法通过class_name找到元素'""

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

如何从列表框中 Select 而不出错?

Flash只从html表单中获取一个值

在代码执行后关闭ChromeDriver窗口

OpenCV轮廓.很难找到给定图像的所需轮廓