You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取指定CSV列、剔除异常值并重新生成CSV文件

嘿,我来帮你把这个异常值处理+保存的完整流程搞定!你已经开了个好头,现在把剩下的步骤补全,还能保留原数据的其他列哦~

完整实现代码
# 导入需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 1. 读取整个CSV文件(保留所有列,仅处理Last列)
df = pd.read_csv('trainning_data.csv')

# 2. 提取Last列用于异常值分析
last_column = df['Last']

# 3. 计算四分位数和异常值判定阈值
Q1 = np.percentile(last_column, 25)
Q3 = np.percentile(last_column, 75)
IQR = Q3 - Q1  # 四分位距
# 行业通用异常值范围:小于Q1-1.5*IQR 或者 大于Q3+1.5*IQR
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# 4. 过滤掉Last列存在异常值的行,保留正常数据
filtered_df = df[(df['Last'] >= lower_bound) & (df['Last'] <= upper_bound)]

# 5. 保存处理后的新CSV文件(可自定义文件名)
filtered_df.to_csv('cleaned_training_data.csv', index=False)

# 可选:可视化处理前后的对比,验证效果
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.plot(last_column, 'o')
plt.title('Original Last Column Data')
plt.subplot(1, 2, 2)
plt.plot(filtered_df['Last'], 'o')
plt.title('Cleaned Last Column Data')
plt.tight_layout()
plt.show()
关键说明
  • 我保留了原数据的所有列(A-F列完全不动),只过滤掉Last列异常的行,生成的新CSV结构和原文件一致,仅剔除异常数据行。
  • 异常值判定用的是行业通用的1.5倍IQR规则,如果你的业务有特殊要求,可以调整1.5这个系数(比如用3倍IQR做更严格的筛选)。
  • to_csv时加了index=False,避免把Pandas的索引列写入CSV,保持输出文件的干净整洁。

内容的提问来源于stack exchange,提问作者Triều Hải

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:16:49