继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Pandas入门教程:轻松掌握数据处理与分析

料青山看我应如是
关注TA
已关注
手记 351
粉丝 97
获赞 354
概述

Pandas 是一个强大的 Python 库,提供高效的数据处理和分析工具。它主要包括 Series 和 DataFrame 两个数据结构,支持数据索引、清洗和转换等功能。本文详细介绍了 Pandas 的安装、基本数据结构、数据读写方法以及常用的数据处理和分析操作。

1. Pandas 简介

Pandas 是什么

Pandas 是一个开源的 Python 库,旨在使数据处理和分析任务变得更加容易。它是由 Wes McKinney 在 2008 年创建的,最初是为了支持金融分析和量化交易,但很快被广泛应用于各种数据处理任务中。Pandas 的名字来源于“面板数据”(panel data)和“Python 数据分析”(Python data analysis),这两个词的结合体。

Pandas 主要包括两个数据结构:Series 和 DataFrame。这两个数据结构是在 NumPy 的基础上构建的,并提供了更高级的数据操作功能,包括数据索引、数据选择、数据清洗、数据转换等。

Pandas 的作用与优势

Pandas 具备高效的数据处理工具,可以轻松地进行数据的筛选、排序、分组等操作。它还提供了丰富的数据清洗功能,包括填充缺失值、处理异常值等。此外,Pandas 提供了多种描述性统计分析功能,如计算均值、方差、相关系数等。虽然 Pandas 不直接提供数据可视化的功能,但它可以与 Matplotlib 等可视化工具结合使用,轻松生成各种图表和图形。Pandas 还支持多种数据文件格式的导入和导出,如 CSV、Excel、SQL 等,使得数据处理更加方便。其核心数据结构 Series 和 DataFrame 在设计上优化了性能,使得大数据量的处理更加高效。

Pandas 的优势包括:

  • 灵活性和易用性:Pandas 提供了丰富的函数和方法,可以方便地进行各种数据操作。
  • 灵活性的数据结构:Pandas 的 Series 和 DataFrame 数据结构可以灵活地存储不同类型的值,并且支持灵活的数据索引。
  • 高性能:Pandas 在很多场景下比使用传统的 Python 代码更快,因为它是在 C 语言的基础上实现的。
  • 广泛的应用:Pandas 被广泛应用于数据分析、数据科学、金融分析、统计分析等领域。
2. 安装与环境配置

安装 Pandas

Pandas 依赖于 NumPy 库,因此在安装 Pandas 之前需要先安装 NumPy。以下是安装步骤:

  1. 安装 NumPy

    pip install numpy
  2. 安装 Pandas
    pip install pandas

安装完成后,可以通过导入 Pandas 库来验证是否安装成功:

import pandas as pd
print(pd.__version__)

如果输出 Pandas 的版本号,则表示安装成功。

创建 Python 开发环境

要创建一个适合 Pandas 开发的 Python 环境,可以使用 Anaconda 或者虚拟环境。以下是两种方法的介绍:

使用 Anaconda

Anaconda 是一款开源的 Python 和 R 数据科学平台,它集成了 Pandas、NumPy、Matplotlib 等多个常用的科学计算库,并且内置了多个数据科学环境。以下是安装和配置步骤:

  1. 下载并安装 Anaconda
  2. 创建一个新的环境
    • 打开 Anaconda Prompt(Windows)或终端(macOS 和 Linux)。
    • 使用以下命令创建新的环境:
      conda create --name myenv python=3.8
    • 激活环境:
      conda activate myenv
  3. 安装 Pandas 和其他依赖库
    • 使用以下命令安装 Pandas 和 NumPy:
      conda install pandas numpy

使用虚拟环境

虚拟环境是一种隔离的 Python 环境,可以方便地管理不同项目所需的库和版本。以下是使用虚拟环境的步骤:

  1. 创建虚拟环境
    • 打开终端(macOS 和 Linux)或命令提示符(Windows)。
    • 使用以下命令创建虚拟环境:
      python -m venv myenv
  2. 激活虚拟环境
    • 激活虚拟环境(不同的操作系统激活方式不同):
      • Windows:
        myenv\Scripts\activate
      • macOS/Linux:
        source myenv/bin/activate
  3. 安装 Pandas 和 NumPy
    • 使用以下命令安装 Pandas 和 NumPy:
      pip install pandas numpy
3. Pandas 基本数据结构

Series 对象

Pandas 中的 Series 对象是一个类似于一维数组的对象,它支持整数索引和标签索引。Series 对象可以存储任意类型的数据,如整数、浮点数、字符串等。以下是一个简单的 Series 对象创建示例:

import pandas as pd
import numpy as np

# 创建一个 Series 对象
s = pd.Series([1, 3, 5, np.nan, 6, 8])

# 输出 Series 对象
print(s)

输出结果:

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

Series 对象的一些常用操作包括:

  1. 索引与选择

    • 通过位置索引:
      print(s[0])
      print(s[-1])
    • 通过标签索引:
      s = pd.Series([1, 3, 5, np.nan, 6, 8], index=['a', 'b', 'c', 'd', 'e', 'f'])
      print(s['a'])
  2. 数据清洗
    • 删除缺失值:
      s = pd.Series([1, 3, 5, np.nan, 6, 8])
      s = s.dropna()
      print(s)
    • 填充缺失值:
      s = pd.Series([1, 3, 5, np.nan, 6, 8])
      s = s.fillna(0)
      print(s)

DataFrame 对象

Pandas 中的 DataFrame 对象是一个二维表格数据结构,由行和列组成,可以存储不同类型的值,并且支持多种数据操作。DataFrame 对象可以看作是多个 Series 对象的容器,或者一个二维 NumPy 数组。以下是一个简单的 DataFrame 对象创建示例:

import pandas as pd
import numpy as np

# 创建一个 DataFrame 对象
data = {
    'Name': ['Tom', 'Nick', 'John', 'Tom'],
    'Age': [22, 23, 24, 25],
    'City': ['New York', 'Los Angeles', 'Chicago', 'San Francisco']
}
df = pd.DataFrame(data)

# 输出 DataFrame 对象
print(df)

输出结果:

    Name  Age            City
0   Tom   22        New York
1  Nick   23  Los Angeles
2  John   24       Chicago
3   Tom   25  San Francisco

DataFrame 对象的一些常用操作包括:

  1. 索引与选择

    • 通过位置索引:
      print(df.iloc[0])
      print(df.iloc[:, 1])
    • 通过标签索引:
      print(df.loc[0])
      print(df.loc[:, 'Age'])
  2. 数据清洗

    • 删除缺失值:
      df = pd.DataFrame({'A': [1, 3, 5, np.nan], 'B': [np.nan, 2, 4, 6]})
      df = df.dropna()
      print(df)
    • 填充缺失值:
      df = pd.DataFrame({'A': [1, 3, 5, np.nan], 'B': [np.nan, 2, 4, 6]})
      df = df.fillna(0)
      print(df)
  3. 数据转换
    • 添加新列:
      df['NewColumn'] = df['Age'] * 2
      print(df)
    • 删除列:
      df.drop('Age', axis=1, inplace=True)
      print(df)
    • 更改列名:
      df.rename(columns={'Name': 'EmployeeName'}, inplace=True)
      print(df)
4. 数据读取与写入

读取 CSV 文件

CSV(Comma-Separated Values)文件是一种常用的文本文件格式,用于存储表格数据。Pandas 提供了多种方法来读取 CSV 文件。以下是使用 pd.read_csv 函数读取 CSV 文件的示例:

import pandas as pd

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

# 输出 DataFrame 对象
print(df)

读取 Excel 文件

Excel 文件是一种常见的电子表格文件格式,也经常用于存储表格数据。Pandas 提供了 pd.read_excel 函数来读取 Excel 文件。以下是使用 pd.read_excel 函数读取 Excel 文件的示例:

import pandas as pd

# 读取 Excel 文件
df = pd.read_excel('data.xlsx')

# 输出 DataFrame 对象
print(df)

写入数据到 CSV 和 Excel 文件

Pandas 提供了多种方法来将 DataFrame 对象写入 CSV 和 Excel 文件。以下是使用 df.to_csvdf.to_excel 方法写入数据的示例:

import pandas as pd

# 创建一个 DataFrame 对象
data = {
    'Name': ['Tom', 'Nick', 'John', 'Tom'],
    'Age': [22, 23, 24, 25],
    'City': ['New York', 'Los Angeles', 'Chicago', 'San Francisco']
}
df = pd.DataFrame(data)

# 写入 CSV 文件
df.to_csv('output.csv', index=False)

# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)
5. 数据处理常用操作

数据索引与选择

数据索引是指定位数据的方法,包括通过位置索引和标签索引。数据选择是指从 DataFrame 中选择特定的数据子集。以下是常用的索引和选择方法:

  1. 位置索引

    • 使用 iloc 方法:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 3, 5, 7], 'B': [2, 4, 6, 8]})
      print(df.iloc[0])  # 输出第一行
      print(df.iloc[:, 1])  # 输出第二列
    • 使用 loc 方法:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 3, 5, 7], 'B': [2, 4, 6, 8]}, index=['a', 'b', 'c', 'd'])
      print(df.loc['a'])  # 输出索引为 'a' 的行
      print(df.loc[:, 'B'])  # 输出列 'B'
  2. 条件选择
    • 使用布尔索引:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
      print(df[df['A'] > 2])  # 输出 'A' 列值大于 2 的行

数据的增删改查

  1. 添加数据

    • 添加新列:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
      df['C'] = df['A'] + df['B']
      print(df)
    • 添加新行:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
      df.loc[len(df)] = [7, 8]
      print(df)
  2. 删除数据

    • 删除列:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
      df.drop('C', axis=1, inplace=True)
      print(df)
    • 删除行:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
      df.drop([0, 2], inplace=True)
      print(df)
  3. 修改数据
    • 修改值:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
      df['A'] = [7, 8, 9]
      print(df)

数据清洗与转换

  1. 删除缺失值

    import pandas as pd
    df = pd.DataFrame({'A': [1, np.nan, 3, 5], 'B': [2, 4, np.nan, 6]})
    df = df.dropna()
    print(df)
  2. 填充缺失值

    import pandas as pd
    df = pd.DataFrame({'A': [1, np.nan, 3, 5], 'B': [2, 4, np.nan, 6]})
    df = df.fillna(0)
    print(df)
  3. 数据转换
    • 转换数据类型:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
      df['A'] = df['A'].astype(float)
      print(df)
    • 数据标准化:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
      df['A'] = (df['A'] - df['A'].mean()) / df['A'].std()
      print(df)
6. 数据分析基础

描述性统计分析

描述性统计分析是指对数据进行统计描述,包括计算均值、方差、标准差、最大值、最小值等。以下是常用的描述性统计方法:

  1. 均值

    import pandas as pd
    df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
    print(df['A'].mean())
  2. 方差

    import pandas as pd
    df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
    print(df['A'].var())
  3. 标准差

    import pandas as pd
    df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
    print(df['A'].std())
  4. 最大值和最小值
    import pandas as pd
    df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
    print(df['A'].max())
    print(df['A'].min())

数据可视化简介

虽然 Pandas 本身不提供数据可视化的功能,但它可以很方便地与 Matplotlib 等可视化库结合使用。以下是一个使用 Matplotlib 绘制柱状图的示例:

  1. 安装 Matplotlib

    pip install matplotlib
  2. 绘制柱状图

    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 创建一个 DataFrame 对象
    data = {
        'Name': ['Tom', 'Nick', 'John', 'Tom'],
        'Age': [22, 23, 24, 25]
    }
    df = pd.DataFrame(data)
    
    # 绘制柱状图
    plt.bar(df['Name'], df['Age'])
    plt.xlabel('Name')
    plt.ylabel('Age')
    plt.title('Age Distribution')
    plt.show()

常用的数据分析函数

Pandas 提供了多种数据分析函数,包括 aggapplygroupby 等。以下是这些函数的示例:

  1. agg

    import pandas as pd
    df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
    print(df.agg(['sum', 'mean']))
  2. apply

    import pandas as pd
    df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
    print(df.apply(lambda x: x * 2))
  3. groupby
    import pandas as pd
    df = pd.DataFrame({'Name': ['Tom', 'Nick', 'John', 'Tom'], 'Age': [22, 23, 24, 25]})
    print(df.groupby('Name').mean())

通过以上介绍,我们了解了 Pandas 的基本概念、安装方法、基本数据结构、数据读写方法以及常用的数据处理和分析操作。希望这些内容能帮助你更好地理解和使用 Pandas。如果你有任何问题或需要进一步的帮助,可以参考 Pandas 的官方文档(https://pandas.pydata.org/pandas-docs/stable/index.html)或参加一些在线课程,如 慕课网 提供的相关课程。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP