包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

数据清洗是数据分析过程中至关重要的一步,它决定了后续分析的准确性和有效性。以下是Python数据分析中必备的10种数据清洗技术,并附带代码讲解。

🟢 1. 处理缺失值

  • 缺失值处理是数据清洗的第一步。常见的方法包括删除缺失值、填充缺失值(如使用均值、中位数、众数等)。
import pandas as pd
import numpy as np
 
# 创建示例数据
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [np.nan, 2, 3, 4, 5],
        'C': [1, np.nan, np.nan, 4, 5]}
df = pd.DataFrame(data)
 
# 删除包含缺失值的行
df_dropped = df.dropna()
print("删除缺失值后的数据:\n", df_dropped)
 
# 填充缺失值(使用均值)
df_filled = df.fillna(df.mean())
print("填充缺失值后的数据:\n", df_filled)

🟢 2. 处理重复值

  • 使用drop_duplicates()方法删除重复的行。
# 创建示例数据
data = {'A': [1, 2, 2, 4, 5],
        'B': [2, 2, 3, 4, 5],
        'C': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
 
# 删除重复值
df_unique = df.drop_duplicates()
print("删除重复值后的数据:\n", df_unique)

🟢 3. 处理异常值

  • 异常值可能是数据录入错误或测量误差导致的。可以使用统计方法(如3σ原则)或箱线图(IQR)来检测和处理异常值。
# 使用箱线图检测异常值
Q1 = df['A'].quantile(0.25)
Q3 = df['A'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
 
# 过滤异常值
df_cleaned = df[(df['A'] >= lower_bound) & (df['A'] <= upper_bound)]
print("处理异常值后的数据:\n", df_cleaned)

🟢 4. 数据类型转换

  • 确保数据类型正确,如将字符串转换为数值类型。
# 创建示例数据
data = {'A': ['1', '2', '3', 'four'],
        'B': ['2.5', '3.5', 'four', '5.5']}
df = pd.DataFrame(data)
 
# 转换数据类型
df['A'] = pd.to_numeric(df['A'], errors='coerce')
df['B'] = pd.to_numeric(df['B'], errors='coerce')
print("数据类型转换后的数据:\n", df)

🟢 5. 字符串处理

  • 去除字符串中的空格、特殊字符等。
# 创建示例数据
data = {'A': ['  hello ', 'world!!', 'python#'],
        'B': ['data123', 'analysis!!!', 'python_code']}
df = pd.DataFrame(data)
 
# 去除字符串两端的空格
df['A'] = df['A'].str.strip()
# 去除字符串中的特殊字符
df['B'] = df['B'].str.replace(r'[^a-zA-Z0-9\s]', '', regex=True)
print("字符串处理后的数据:\n", df)

🟢 6. 数据标准化

  • 将数值数据转换为相同的尺度,例如使用z-score标准化。
from sklearn.preprocessing import StandardScaler
 
# 创建示例数据
data = {'A': [1, 2, 3, 4, 5],
        'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
 
# 标准化数据
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df)
df_scaled = pd.DataFrame(df_scaled, columns=df.columns)
print("标准化后的数据:\n", df_scaled)

🟢 7. 处理分类变量

  • 将分类变量转换为数值变量,例如使用独热编码(One-Hot Encoding)。
# 创建示例数据
data = {'Category': ['A', 'B', 'A', 'C', 'B']}
df = pd.DataFrame(data)
 
# 独热编码
df_encoded = pd.get_dummies(df, columns=['Category'])
print("独热编码后的数据:\n", df_encoded)

🟢 8. 处理时间数据

  • 将时间字符串转换为日期时间对象,并进行相应的处理。
# 创建示例数据
data = {'Date': ['2023-01-01', '2023-01-02', '2023-01-03']}
df = pd.DataFrame(data)
 
# 转换时间数据
df['Date'] = pd.to_datetime(df['Date'])
print("时间数据转换后的数据:\n", df)

🟢 9. 合并数据集

  • 使用merge()方法合并多个数据集。
# 创建示例数据
df1 = pd.DataFrame({'ID': [1, 2, 3], 'Value1': [10, 20, 30]})
df2 = pd.DataFrame({'ID': [1, 2, 4], 'Value2': [40, 50, 60]})
 
# 合并数据集
df_merged = pd.merge(df1, df2, on='ID', how='inner')
print("合并数据集后的数据:\n", df_merged)

🟢 10. 数据排序

  • 对数据集进行排序,以便更好地分析。
# 创建示例数据
data = {'A': [3, 1, 4, 1, 5],
        'B': [2, 3, 1, 4, 2]}
df = pd.DataFrame(data)
 
# 按列A排序
df_sorted = df.sort_values(by='A')
print("排序后的数据:\n", df_sorted)
  • 这些技术涵盖了数据清洗的主要方面,通过合理使用这些方法,可以显著提高数据质量,为后续的数据分析打下坚实基础。
    图片

🟢 总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

🟡 文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
🔴包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐