博客
关于我
Python数据分析入门(十):数据清洗和准备
阅读量:629 次
发布时间:2019-03-14

本文共 1899 字,大约阅读时间需要 6 分钟。

数据清洗与处理案例指南

数据清洗是数据分析工作中的关键步骤,直接影响后续处理的效果。完成数据清洗后,我们可以更有效地执行数据分析、挖掘等 operations。数据清洗本身也是一个迭代的过程,在实际项目中通常需要多次对数据进行清洗和调整,使其适用于接下来的分析任务。

以下分为几个部分详细讨论如何进行数据清洗和处理:

1. 处理缺失数据

在数据清洗过程中,缺失数据是一个常见问题。我们可以通过以下方法来处理缺失数据:

  • 使用 pd.fillna() 方法填充缺失值。这种方法默认会将缺失值替换为 None,但可以根据需要指定填充值。
  • 使用 pd.dropna() 方法删除包含缺失值的行。
  • 示例:

    import pandas as pddf_example = pd.DataFrame({    'A': ['a', 'b', None],    'B': [2, 4, None]})print(df_example)#            A  B# 0     a  2# 1     b  4# 2   NaN  NaNdf_example.dropna(inplace=True)print(df_example)#            A  B# 0     a  2# 1     b  4

    2. 数据转换操作

    数据转换是通过 pandas 的高级函数来实现的,下面是几个常用的方法:

    2.1 处理重复数据

    使用 duplicated() 方法可以检测重复行:

    import pandas as pddf = pd.DataFrame({    'data1': ['a'] * 4 + ['b'] * 4,    'data2': pdايات agedint(0, 4, 8)})print(df)# data1  data20     a      31     a      22     a      33     a      34     b      15     b      06     b      37     b      0df.duplicated()# 0     False# 1     False# 2     True# 3     True# 4     False# 5     False# 6     False

    // 使用 drop_duplicates() 方法删除重复行:

    df = df.drop_duplicates()# 结果如下:# data1  data20     a      31     a      22     b      15     b      06     b      3

    2.2 数据映射转换

    使用 map() 方法对数据进行映射转换:

    import pandas as pdser_obj = pd.Series(    pd.int64_dtype,    np.random.randint(0, 10, 10))print(ser_obj)# 0     11      42      83      64      85      66      67      48      79      3ser_obj.map(lambda x: x ** 2)# 结果如下:# 0     11     162      643      364      645      366      367      168      499      9

    2.3 数据替换

    使用 replace() 方法替换数据:

    • 单个值替换:
    ser_obj.replace(1, -100)
    • 多个值替换:
    ser_obj.replace([6,8], -100)ser_obj.replace([4,7], [-100, -200])

    3. 字符串操作

    对于字符串数据,pandas 提供了丰富的字符串操作方法。

    3.1 字符串方法

    • str.replace()
    • str.find()
    • str.split()
    • str.upper()str.lower()
    • str.strip()

    3.2 正则表达式操作

    • str.findall()str.find()
    • re.search()

    3.3 pandas 字符函数

    • str accessor e.g., df['column'].str.replace(...)

    通过以上方法,我们可以对字符串数据进行丰富的操作,从而提升数据处理的效率和效果。

    转载地址:http://wysoz.baihongyu.com/

    你可能感兴趣的文章
    OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
    查看>>
    OSChina 周四乱弹 ——程序员为啥要买苹果手机啊?
    查看>>
    OSError: no library called “cairo-2“ was foundno library called “cairo“ was foundno library called
    查看>>
    Osgi环境配置
    查看>>
    OSG学习:几何体的操作(二)——交互事件、Delaunay三角网绘制
    查看>>
    OSG学习:几何对象的绘制(三)——几何元素的存储和几何体的绘制方法
    查看>>
    OSG学习:几何对象的绘制(二)——简易房屋
    查看>>
    OSG学习:几何对象的绘制(四)——几何体的更新回调:旋转的线
    查看>>
    OSG学习:场景图形管理(一)——视图与相机
    查看>>
    OSG学习:场景图形管理(三)——多视图相机渲染
    查看>>
    OSG学习:场景图形管理(二)——单窗口多相机渲染
    查看>>
    OSG学习:场景图形管理(四)——多视图多窗口渲染
    查看>>
    OSG学习:新建C++/CLI工程并读取模型(C++/CLI)——根据OSG官方示例代码初步理解其方法
    查看>>
    Sql 随机更新一条数据返回更新数据的ID编号
    查看>>
    OSG学习:空间变换节点和开关节点示例
    查看>>
    OSG学习:纹理映射(一)——多重纹理映射
    查看>>
    OSG学习:纹理映射(七)——聚光灯
    查看>>
    OSG学习:纹理映射(三)——立方图纹理映射
    查看>>
    OSG学习:纹理映射(二)——一维/二维/简单立方图纹理映射
    查看>>
    OSG学习:纹理映射(五)——计算纹理坐标
    查看>>