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 值以提供更大的范围,您会看到它提供了预期的结果。
当我在下面 运行 时,我得到 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 值以提供更大的范围,您会看到它提供了预期的结果。