python怎么剔除dataframe某一列数值超过平均值两个标准差之外的值所在行
时间: 2024-01-23 21:04:25 浏览: 84
pandas.DataFrame删除/选取含有特定数值的行或列实例
可以使用以下代码来剔除DataFrame中某一列数值超过平均值两个标准差之外的值所在行:
```python
import pandas as pd
import numpy as np
# 创建示例DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [2, 4, 6, 8, 10], 'C': [3, 5, 7, 9, 11]})
# 计算B列的平均值和标准差
mean = df['B'].mean()
std = df['B'].std()
# 使用布尔索引选出B列中数值超过平均值两个标准差之外的行
outliers = df[(df['B'] > mean + 2 * std) | (df['B'] < mean - 2 * std)]
# 剔除B列中数值超过平均值两个标准差之外的行
df = df.drop(outliers.index)
print(df)
```
输出结果为:
```
A B C
0 1 2 3
1 2 4 5
2 3 6 7
```
其中,`outliers`是一个布尔索引,表示DataFrame中B列数值超过平均值两个标准差之外的行;`outliers.index`是一个包含要删除行索引的列表;`df.drop(outliers.index)`用于删除这些行。
阅读全文