【进阶篇】爬虫数据清洗与预处理技术:使用Pandas进行数据清洗和转换
发布时间: 2024-06-25 00:01:27 阅读量: 118 订阅数: 205 


基于DSP2812的永磁同步电机调速系统仿真与调试关键技术解析
2.1 Pandas数据结构和操作
2.1.1 DataFrame和Series简介
DataFrame:
- 二维表格状数据结构,类似于Excel工作表。
- 由行(index)和列(columns)组成,每个单元格包含一个值。
- 可通过
pd.DataFrame()
创建。
Series:
- 一维数组状数据结构,类似于Python列表。
- 由一个值序列和一个索引序列组成。
- 可通过
pd.Series()
创建。
2.1.2 数据的导入和导出
导入数据:
- 从CSV文件:
pd.read_csv()
- 从Excel文件:
pd.read_excel()
- 从JSON文件:
pd.read_json()
导出数据:
- 到CSV文件:
df.to_csv()
- 到Excel文件:
df.to_excel()
- 到JSON文件:
df.to_json()
2. Pandas数据清洗技术
2.1 Pandas数据结构和操作
2.1.1 DataFrame和Series简介
Pandas库中的两个核心数据结构是DataFrame和Series。DataFrame是一个二维表状结构,包含行和列,类似于SQL中的表格。Series是一个一维数组,类似于Python中的列表。
DataFrame
- import pandas as pd
- # 创建一个DataFrame
- df = pd.DataFrame({
- "name": ["John", "Mary", "Bob"],
- "age": [20, 25, 30],
- "city": ["New York", "London", "Paris"]
- })
- # 查看DataFrame
- print(df)
输出:
- name age city
- 0 John 20 New York
- 1 Mary 25 London
- 2 Bob 30 Paris
Series
- # 创建一个Series
- series = pd.Series([20, 25, 30])
- # 查看Series
- print(series)
输出:
- 0 20
- 1 25
- 2 30
- dtype: int64
2.1.2 数据的导入和导出
Pandas提供了多种导入和导出数据的方法,包括:
导入数据
- 从CSV文件导入:
pd.read_csv("file.csv")
- 从Excel文件导入:
pd.read_excel("file.xlsx")
- 从JSON文件导入:
pd.read_json("file.json")
导出数据
- 导出到CSV文件:
df.to_csv("file.csv")
- 导出到Excel文件:
df.to_excel("file.xlsx")
- 导出到JSON文件:
df.to_json("file.json")
2.2 数据清洗方法
2.2.1 缺失值处理
缺失值是数据清洗中常见的挑战。Pandas提供了多种处理缺失值的方法:
- 删除缺失值:
df.dropna()
- 用特定值填充缺失值:
df.fillna(value)
- 用平均值填充缺失值:
df.fillna(df.mean())
2.2.2 重复值处理
重复值也是数据清洗中需要处理的问题。Pandas提供了以下方法:
- 删除重复值:
df.drop_duplicates()
- 保留第一个重复值:
df.drop_duplicates(keep="first")
- 保留最后一个重复值:
df.drop_duplicates(keep="last")
2.2.3 数据类型转换
有时需要将数据类型从一种类型转换为另一种类型。Pandas提供了astype()
方法:
- # 将"age"列转换为浮点数
- df["age"] = df["age"].astype(float)
2.3 数据转换方法
2.3.1 数据合并和连接
Pandas提供了merge()
和join()
方法合并和连接DataFrame:
- 合并:
df1.merge(df2, on="column_name")
- 连接:
df1.join(df2, on="column_name")
2.3.2 数据分组和聚合
Pandas提供了groupby()
和agg()
方法对数据进行分组和聚合:
- # 按"city"列分组并计算每个城市的人数
- df.groupby("city").agg({"age": "count"})
2.3.3 数据排序和筛选
Pandas提供了sort_values()
和query()
方法对数据进行排序和筛选:
- # 按"age"列降序排序
- df.sort_values("age", ascending=False)
- # 筛选出年龄大于25岁的人
- df.query("age > 25")
3.1 特征工程
特征工程是数据预处理中至关重要的一步,它可以帮助我们从原始数据中提取出有价值的特
0
0
相关推荐






