IT评测·应用市场-qidao123.com

标题: 具体学习 pandas 和 xlrd:从零开始 [打印本页]

作者: 缠丝猫    时间: 2025-3-13 14:40
标题: 具体学习 pandas 和 xlrd:从零开始
具体学习 pandas 和 xlrd:从零开始

前言

在数据处理和分析中,Excel 文件是最常见的数据格式之一。Python 提供了强大的库 pandas,可以轻松地处理 Excel 文件中的数据。同时,我们还可以使用 xlrd 来读取 Excel 文件,尤其是较旧格式的 .xls 文件。
本篇博客将从零开始,带你学习怎样使用 pandas 和 xlrd 来读取、处理、修改和生存 Excel 文件的数据。我们将具体讲解每一步,并附带代码示例和输出结果。

一、情况预备和安装

在开始学习之前,我们需要确保 Python 情况中已经安装了 pandas 和 xlrd。你可以通过以下步骤安装这些库。
1.1 安装 pandas 和 xlrd

打开命令行(Windows)或终端(macOS 和 Linux),输入以下命令来安装 pandas 和 xlrd:
  1. pip install pandas xlrd
复制代码
1.2 验证安装

安装完成后,你可以通过以下代码验证安装是否成功:
  1. import pandas as pd
  2. import xlrd
  3. print(pd.__version__)  # 打印 pandas 的版本
  4. print(xlrd.__version__)  # 打印 xlrd 的版本
复制代码
如果没有报错,而且成功打印出书本号,说明安装成功。

二、pandas 和 xlrd 的基础概念

在开始写代码之前,我们先相识一些 pandas 和 xlrd 的基础概念。
2.1 什么是 pandas?

pandas 是一个用于数据分析和处理的强大 Python 库。它的核心数据结构是 DataFrameSeries

2.2 什么是 xlrd?

xlrd 是一个专门用于读取 Excel 文件的库,尤其是 .xls 格式的文件。pandas 依靠 xlrd 来读取这些文件的数据。

三、使用 pandas 读取 Excel 文件

3.1 读取 Excel 文件的基础方法

我们首先学习怎样使用 pandas 读取一个 Excel 文件。假设我们有一个名为 example.xls 的 Excel 文件,它包罗以下数据:
  1.     Name  Age         City
  2. 0  Alice   25     New York
  3. 1    Bob   30  Los Angeles
  4. 2 Charlie   35     Chicago
复制代码
代码示例:读取 Excel 文件

  1. import pandas as pd
  2. # 使用 pandas 读取 Excel 文件
  3. df = pd.read_excel('example.xls', engine='xlrd')
  4. # 显示前几行数据
  5. print(df.head())
复制代码
解释


输出示例

当你运行这段代码时,你会看到以下输出:
  1.        Name  Age         City
  2. 0     Alice   25     New York
  3. 1       Bob   30  Los Angeles
  4. 2   Charlie   35     Chicago
复制代码

四、深入理解 DataFrame 和 Series

4.1 什么是 DataFrame?

DataFrame 是 pandas 中的核心数据结构之一,它是一个二维的表格,类似于 Excel 表格。每个 DataFrame 都有行索引和列标签。
示例:创建一个简单的 DataFrame

  1. import pandas as pd
  2. # 定义一个字典,表示表格中的数据
  3. data = {
  4.     'Name': ['Alice', 'Bob', 'Charlie'],
  5.     'Age': [25, 30, 35],
  6.     'City': ['New York', 'Los Angeles', 'Chicago']
  7. }
  8. # 将字典转换为 DataFrame
  9. df = pd.DataFrame(data)
  10. # 显示 DataFrame
  11. print(df)
复制代码
解释


输出示例

运行代码后,你将看到如下输出:
  1.        Name  Age         City
  2. 0     Alice   25     New York
  3. 1       Bob   30  Los Angeles
  4. 2   Charlie   35     Chicago
复制代码
4.2 什么是 Series?

Series 是 pandas 中的一维数据结构,类似于 Excel 中的一列。每个 Series 都有一个索引和一组数据。
示例:从 DataFrame 中提取 Series

  1. # 从 DataFrame 中提取 'Name' 列,作为一个 Series
  2. names = df['Name']
  3. # 显示 Series
  4. print(names)
复制代码
输出示例

运行代码后,你将看到如下输出:
  1. 0      Alice
  2. 1        Bob
  3. 2    Charlie
  4. Name: Name, dtype: object
复制代码
解释



五、处理 DataFrame 数据

5.1 增加新列

我们可以向 DataFrame 中添加一列新数据,比如性别。
代码示例:增加一列数据

  1. # 增加一列数据,表示这些人的性别
  2. df['Gender'] = ['Female', 'Male', 'Male']
  3. # 显示更新后的 DataFrame
  4. print(df)
复制代码
输出示例

运行代码后,你将看到如下输出:
  1.      Name  Age         City  Gender
  2. 0     Alice   25     New York  Female
  3. 1       Bob   30  Los Angeles    Male
  4. 2   Charlie   35     Chicago    Male
复制代码
5.2 删除列

如果你想删除 DataFrame 中的一列数据,可以使用 drop 方法。
代码示例:删除一列数据

  1. # 删除 'City' 列
  2. df = df.drop(columns=['City'])
  3. # 显示更新后的 DataFrame
  4. print(df)
复制代码
输出示例

运行代码后,你将看到如下输出:
  1.       Name  Age  Gender
  2. 0     Alice   25  Female
  3. 1       Bob   30    Male
  4. 2   Charlie   35    Male
复制代码

六、生存数据到 Excel 文件

处理完数据后,你大概需要将结果生存到一个新的 Excel 文件中。
代码示例:写入 Excel 文件

  1. # 将 DataFrame 保存到新的 Excel 文件中
  2. df.to_excel('output.xlsx', index=False)
  3. print("数据已保存到 output.xlsx")
复制代码
解释


输出示例

运行代码后,终端中会显示:
  1. 数据已保存到 output.xlsx
复制代码
而且,你的项目目录中会生成一个名为 output.xlsx 的 Excel 文件,内容如下:
  1.      Name  Age  Gender
  2. 0     Alice   25  Female
  3. 1       Bob   30    Male
  4. 2   Charlie   35    Male
复制代码

七、读取和合并多个 Excel 文件

7.1 场景概述

在实际项目中,你大概需要从多个 Excel 文件中读取数据,并将它们合并到一个 DataFrame 中。这在处理多个来源的数据时尤其有效。
7.2 代码示例:读取并合并多个 Excel 文件

假设你有多个 Excel 文件,它们有雷同的结构,现在我们需要将这些文件合并到一个 DataFrame 中。
  1. import pandas as pd
  2. import glob
  3. # 获取所有 .xls 文件路径
  4. file_list = glob.glob('data/*.xls')
  5. # 读取所有文件并合并为一个 DataFrame
  6. df_list = [pd.read_excel(file, engine='xlrd') for file in file_list]
  7. combined_df = pd.concat(df_list, ignore_index=True)
  8. # 显示合并后的 DataFrame
  9. print(combined_df.head())
复制代码
具体解释

输出示例

假设你有三个 Excel 文件,每个文件的内容类似于:
  1. File 1:
  2.     Name  Age         City
  3. 0  Alice   25     New York
  4. File 2:
  5.     Name  Age         City
  6. 0    Bob   30  Los Angeles
  7. File 3:
  8.     Name  Age         City
  9. 0 Charlie   35     Chicago
复制代码
合并后的 DataFrame 输出如下:
  1.     Name  Age         City
  2. 0     Alice   25     New York
  3. 1       Bob   30  Los Angeles
  4. 2   Charlie   35     Chicago
复制代码
7.3 实际应用场景

在项目中,你可以使用这个方法来合并多个 Excel 文件的数据,比方汇总多个部门的数据,大概处理分月份、分季度的财政报表。

八、数据洗濯与缺失值处理

8.1 场景概述

在数据分析中,数据通常不完美,大概包罗缺失值或异常值。你需要把握怎样洗濯这些数据,以确保数据质量。
8.2 处理缺失数据

缺失值 是指在数据集中某些字段没有数据,这是常见的问题。我们可以选择删除包罗缺失值的行,大概用其他值来弥补缺失值。
代码示例:添补和删除缺失值

  1. # 示例数据,假设从 Excel 读取的 DataFrame
  2. data = {
  3.     'Name': ['Alice', 'Bob', 'Charlie', None],
  4.     'Age': [25, None, 35, 30],
  5.     'City': ['New York', 'Los Angeles', None, 'Chicago']
  6. }
  7. df = pd.DataFrame(data)
  8. # 查看原始数据
  9. print("原始数据:\n", df)
  10. # 填充缺失值
  11. df_filled = df.fillna({'Name': '未知', 'Age': df['Age'].mean(), 'City': '未知'})
  12. print("\n填充缺失值后的数据:\n", df_filled)
  13. # 删除包含缺失值的行
  14. df_dropped = df.dropna()
  15. print("\n删除缺失值后的数据:\n", df_dropped)
复制代码
具体解释

输出示例

原始数据:
  1.       Name   Age         City
  2. 0     Alice  25.0     New York
  3. 1       Bob   NaN  Los Angeles
  4. 2   Charlie  35.0         None
  5. 3      None  30.0      Chicago
复制代码
添补缺失值后的数据:
  1.       Name   Age         City
  2. 0     Alice  25.0     New York
  3. 1       Bob  30.0  Los Angeles
  4. 2   Charlie  35.0          未知
  5. 3        未知  30.0      Chicago
复制代码
删除缺失值后的数据:
  1.       Name   Age       City
  2. 0     Alice  25.0   New York
复制代码
9.3 实际应用场景

在项目中,数据洗濯是必不可少的一步。你可以使用这些方法来处理数据集中的缺失值,确保数据完整性和同等性。

四、数据筛选与条件过滤

4.1 场景概述

有时你需要从大数据集中筛选出符合特定条件的数据,比如筛选出全部年事大于 30 岁的人。
4.2 代码示例:筛选数据

  1. # 示例数据
  2. data = {
  3.     'Name': ['Alice', 'Bob', 'Charlie', 'David'],
  4.     'Age': [25, 30, 35, 28],
  5.     'City': ['New York', 'Los Angeles', 'Chicago', 'San Francisco']
  6. }
  7. df = pd.DataFrame(data)
  8. # 筛选年龄大于 30 岁的数据
  9. filtered_df = df[df['Age'] > 30]
  10. print("年龄大于 30 岁的数据:\n", filtered_df)
复制代码
具体解释


输出示例

  1.     Name     Age    City
  2. 2   Charlie   35  Chicago
复制代码
4.3 实际应用场景

在项目中,你可以使用这种条件筛选方法来对数据举行初步分析,大概提取出特定子集的数据用于进一步处理。

五、高效的数据操作与分析

5.1 数据分组与聚合

数据分组和聚合是数据分析中非经常见的操作,它可以帮助你从大数据集中提取总结性信息。
代码示例:按城市分组并盘算均匀年事

  1. # 示例数据
  2. data = {
  3.     'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
  4.     'Age': [25, 30, 35, 28, 40],
  5.     'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago']
  6. }
  7. df = pd.DataFrame(data)
  8. # 按城市分组并计算平均年龄
  9. grouped_df = df.groupby('City')['Age'].mean()
  10. print("按城市分组后的平均年龄:\n", grouped_df)
复制代码
具体解释


输出示例

  1. City
  2. Chicago         37.5
  3. Los Angeles     30.0
  4. New York        26.5
  5. Name: Age, dtype: float64
复制代码
5.2 数据透视表(Pivot Table)

数据透视表是一种将数据重新分列为易于分析的格式的工具,在数据汇总和分析中非常有效。
代码示例:创建数据透视表

  1. # 示例数据
  2. data = {
  3.     'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
  4.     'Age': [25, 30, 35, 28, 40],
  5.     'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago'],
  6.     'Gender': ['Female', 'Male', 'Male', 'Male', 'Female']
  7. }
  8. df = pd.DataFrame(data)
  9. # 创建数据透视表,按城市和性别汇总平均年龄
  10. pivot_table = pd.pivot_table(df, values='Age', index='City', columns='Gender', aggfunc='mean')
  11. print("数据透视表:\n", pivot_table)
复制代码
具体解释


输出示例

  1. Gender         Female   Male
  2. City                          
  3. Chicago         40.0   35.0
  4. Los Angeles      NaN   30.0
  5. New York        25.0   28.0
复制代码
5.3 实际应用场景

在你的项目中,分组和数据透视表可以帮助你快速地对数据举行汇总和分析。比方,你可以按部门和性别统计员工的均匀年事,大概按产品和地区盘算销售额的汇总。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4