Pandas:如何select所有列值都在一定范围内的行?

Pandas: How to select rows where all column values are within a certain range?

当我在下面 运行 时,我得到 NameError: name 'apply' is not defined, How to select rows where all columns (a to f) value lies within -0.05 and 0.05 ?

import pandas as pd
import numpy as np

# example data generation
df = pd.DataFrame(np.random.randn(100, 6), columns=['a', 'b', 'c', 'd', 'e', 'f'])
df.head()

# How to select rows where all columns (a to f) value lies within -0.05 and 0.05 ?

df[apply(df >= -0.05 & df <= 0.05, 1, all), ]

这应该能满足您的需求:

results = df[((df >= -0.05) & (df <= 0.05)).all(axis=1)]

对于示例代码给出的随机生成的数据集,这几乎肯定会导致一个空的 DataFrame,但是如果您更改 0.05 值以提供更大的范围,您会看到它提供了预期的结果。