判断Age、Fare两个字段有无异常值,分别输出去掉Age、Fare、以及所有异常值的记录的三组数据。
时间: 2024-01-13 21:04:05 浏览: 130
判断记录是否存在,取某个特定字段值,取多个字段值
以下是判断Age、Fare两个字段有无异常值,分别输出去掉Age、Fare、以及所有异常值的记录的三组数据的示例代码:
```python
import pandas as pd
# 读取数据集
df = pd.read_csv("titanic.csv")
# 判断 Age 是否有异常值
age_stats = df["Age"].describe()
age_max = age_stats["max"]
age_min = age_stats["min"]
if df[(df["Age"] > age_max) | (df["Age"] < age_min)].empty:
print("Age 中没有异常值")
else:
print("Age 中有异常值")
# 判断 Fare 是否有异常值
fare_stats = df["Fare"].describe()
fare_max = fare_stats["max"]
fare_min = fare_stats["min"]
if df[(df["Fare"] > fare_max) | (df["Fare"] < fare_min)].empty:
print("Fare 中没有异常值")
else:
print("Fare 中有异常值")
# 去掉 Age 异常值和 Fare 异常值的记录
df_clean = df[(df["Age"] <= age_max) & (df["Age"] >= age_min) & (df["Fare"] <= fare_max) & (df["Fare"] >= fare_min)]
print("去掉 Age 异常值和 Fare 异常值后的记录数:", len(df_clean))
# 去掉 Age 和 Fare 的记录
df_drop = df.drop(columns=["Age", "Fare"])
print("去掉 Age 和 Fare 后的记录数:", len(df_drop))
# 只去掉 Age 异常值和 Fare 异常值的记录
df_age_fare_clean = df.drop(df_clean.index)
print("只去掉 Age 异常值和 Fare 异常值后的记录数:", len(df_age_fare_clean))
```
需要注意的是,以上代码中的数据集文件名为 "titanic.csv",需要根据实际情况进行修改。
阅读全文