20 数据清洗与处理
在上一篇中,我们简单介绍了如何使用爬虫抓取网页数据。现在,随着我们获得了数据,接下来的重要步骤是进行数据清洗与处理。这一步骤对于保证我们分析和结果的有效性至关重要。在本节中,我们将通过一个具体的案例来讨论如何进行数据清洗与处理。
案例背景
假设我们已经使用爬虫抓取了某一电商网站上产品的信息,数据可能包含产品名称、价格、销量、评价等字段。然而,由于网页结构的复杂性和数据的多样性,我们抓取的数据往往并不完美,可能存在缺失值、重复值、格式不统一等问题。因此,数据清洗的过程是必不可少的。
我们将使用 pandas
库来进行数据清洗与处理。以下是我们抓取到的部分数据示例:
import pandas as pd
# 创建一个示例数据集
data = {
'产品名称': ['苹果', '香蕉', '苹果', '', '橙子'],
'价格': ['3.5元', '2.0元', '3.5元', '1.0元', '4元'],
'销量': ['50', '80', '', '20', '30'],
'评价数': ['100', '200', None, '50', '0']
}
df = pd.DataFrame(data)
print(df)
初步检查数据
在进行清洗之前,首要步骤是检查数据的整体状况:
print(df.info())
print(df.describe())
数据清洗步骤
1. 去除重复项
首先,我们需要去除重复的数据行。使用 drop_duplicates
方法可以轻松实现。
df = df.drop_duplicates()
2. 处理缺失值
接着,我们需要处理缺失值。在本例中,如果数据框中含有空字符串或 None
,我们可以选择删除这些行,或者用合适的填充值替换。
# 删除含缺失值的行
df = df.dropna()
# 或者用适当的值填充,例如,用平均值或中位数
df['销量'] = df['销量'].replace('', '0').astype(int)
df['评价数'] = df['评价数'].fillna('0').astype(int)
3. 格式统一
接下来,我们需要对各个字段的数据格式进行统一。例如,价格字段包含单位“元”,我们可以将其转化为浮点数,以便后续的数值计算。
df['价格'] = df['价格'].str.replace('元', '').astype(float)
4. 数据类型转换
确保每个字段的数据类型是合适的,避免在分析时发生错误。
df['销量'] = df['销量'].astype(int)
df['评价数'] = df['评价数'].astype(int)
5. 保存清洗后的数据
经过清洗后的数据可以保存为新的 CSV 文件,以便后续分析或展示。
df.to_csv('清洗后数据.csv', index=False)
小结
在本节中,我们展示了对爬取数据进行清洗与处理的基本步骤,包括去除重复项、处理缺失值、格式统一、数据类型转换等。这些步骤确保我们的数据在后续的分析和结果展示中具有良好的质量。
在下一篇中,我们将讨论如何将这些清洗后的数据进行展示,以便更好地理解和分析我们的爬虫结果。希望读者对于数据清洗与处理有更深入的理解,并能在实际项目中加以运用!