Pandas数据清洗和预处理的实现示例
作者:西玥
本文主要介绍了Pandas数据清洗和预处理的实现示例,包括处理缺失值、异常值,进行数据转换和规范化,以及处理重复数据等操作,感兴趣的可以了解一下
让我们通过几个案例来学习如何使用Pandas进行数据清洗和预处理,包括处理缺失值、异常值,进行数据转换和规范化,以及处理重复数据等操作。
处理缺失值:
# 创建包含缺失值的DataFrame data = { '姓名': ['张三', '李四', None, '赵六'], '年龄': [18, 19, None, 20], '性别': ['男', '女', '男', '女'], '分数': [90, None, 95, 80] } df = pd.DataFrame(data) # 检测缺失值 print(df.isnull()) # 删除包含缺失值的行 df_dropna = df.dropna() print(df_dropna) # 使用指定值填充缺失值 df_fillna = df.fillna(0) print(df_fillna)
处理异常值:
# 创建包含异常值的DataFrame data = { '姓名': ['张三', '李四', '王五', '赵六'], '年龄': [18, -10, 17, 20], '性别': ['男', '女', '男', '女'], '分数': [90, 85, 105, 80] } df = pd.DataFrame(data) # 检测异常值 age_outliers = df[(df['年龄'] < 0) | (df['年龄'] > 100)] print(age_outliers) score_outliers = df[(df['分数'] < 0) | (df['分数'] > 100)] print(score_outliers) # 替换异常值 df.loc[df['年龄'] < 0, '年龄'] = 18 df.loc[df['分数'] < 0, '分数'] = 0 print(df)
数据转换和规范化:
# 将姓名列转换为大写 df['姓名'] = df['姓名'].str.upper() print(df) # 将分数归一化到0-1之间 df['分数_normalized'] = (df['分数'] - df['分数'].min()) / (df['分数'].max() - df['分数'].min()) print(df) # 使用字典映射进行数据规范化 gender_mapping = {'男': 1, '女': 0} df['性别_encoded'] = df['性别'].map(gender_mapping) print(df)
处理重复数据:
# 创建包含重复数据的DataFrame data = { '姓名': ['张三', '李四', '王五', '张三'], '年龄': [18, 19, 17, 20], '性别': ['男', '女', '男', '男'], '分数': [90, 85, 95, 80] } df = pd.DataFrame(data) # 检测重复行 duplicate_rows = df.duplicated() print(duplicate_rows) # 删除重复行 df_drop_duplicates = df.drop_duplicates() print(df_drop_duplicates)
通过这些案例,您可以学习如何使用Pandas提供的函数和方法来处理数据清洗和预处理的任务。这些操作可以帮助您处理缺失值、异常值,进行数据转换和规范化,并处理重复数据,使数据适合后续的分析和建模。掌握这些技巧可以提高数据质量和准确性,从而得到更可靠的分析结果。您可以根据实际需求在项目中应用这些技术。
到此这篇关于Pandas数据清洗和预处理的实现示例的文章就介绍到这了,更多相关Pandas数据清洗和预处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!