Python 清洗原始数据

  • Post category:Python

接下来我将为您讲解Python清洗原始数据的使用方法,主要分为以下几个步骤:

1.导入数据

首先需要导入需要清洗的数据,可以通过Pandas库中的read_csv函数读取csv文件,也可以读取其他类型的文件。

import pandas as pd

# 读取csv文件
df = pd.read_csv('data.csv')

2.查看数据

在开始数据清洗之前,需要先查看导入的数据,可以使用Pandas库中的head函数和info函数查看前几行数据和数据信息。

# 查看前5行数据
print(df.head())

# 查看数据信息,包括非空值数量和数据类型等
print(df.info())

3.处理缺失值

在数据清洗中,缺失值是常见的问题。可以使用Pandas库中的dropna函数或fillna函数来处理缺失值。

  • 使用dropna函数删除含有缺失值的行或列:
# 删除含有缺失值的行
df.dropna(axis=0, inplace=True)
  • 使用fillna函数填充缺失值:
# 将缺失值用0填充
df.fillna(0, inplace=True)

4.处理重复值

在数据处理中,数据有可能存在重复,可以使用Pandas库中的drop_duplicates函数或duplicated函数来处理重复值。

  • 使用drop_duplicates函数删除重复行:
# 删除重复行
df.drop_duplicates(inplace=True)
  • 使用duplicated函数查找重复值:
# 查找重复行
print(df[df.duplicated()])

5.处理异常值

除了缺失值和重复值,异常值也是需要处理的。在处理异常值之前,需要先查找和诊断异常值。

# 查看各列统计信息
print(df.describe())
# 查看某一列的相关信息
print(df['colname'].describe())

如果发现某些异常值,可以使用Pandas库中的clip函数来进行处理:

# 将小于10的值变为10,大于20的值变为20
df['colname'] = df['colname'].clip(10, 20)

6.处理文本数据

对于包含文本的数据,需要进行一定的处理,如删除特殊字符、转换大小写等。可以使用Pandas库中的str方法来处理文本数据。

# 删除特殊字符
df['colname'] = df['colname'].str.strip('$')
# 将字符串转为小写
df['colname'] = df['colname'].str.lower()

示例一:

下面是一个简单的示例,假设我们需要清洗的数据是一份包含用户订单的csv文件,其中包含订单编号、订单日期、订单金额等字段。假如我们需要删除含有缺失值的行并将订单金额用0填充:

import pandas as pd

# 读取csv文件
df = pd.read_csv('orders.csv')

# 查看前5行数据
print(df.head())

# 删除含有缺失值的行
df.dropna(axis=0, inplace=True)

# 将缺失值用0填充
df.fillna(0, inplace=True)

# 查看处理后的数据信息
print(df.info())

示例二:

下面是另一个示例,假设我们需要清洗的数据是一份包含学生考试成绩的csv文件,其中包含学生姓名、科目、考试日期、成绩等字段。假如我们需要查找重复行并将分数低于60分的成绩变为60分:

import pandas as pd

# 读取csv文件
df = pd.read_csv('scores.csv')

# 删除重复行
df.drop_duplicates(inplace=True)

# 查找成绩小于60的行
print(df[df['score'] < 60])

# 将小于60的成绩换成60
df['score'].clip(lower=60, inplace=True)

# 查看处理后的数据信息
print(df.info())

这就是Python清洗原始数据的完整攻略,希望对您有所帮助。