当前位置:  首页>> 技术小册>> NLP入门到实战精讲(上)

章节 32 | Pandas简介:如何使用Pandas对数据进行处理?

引言

在数据科学和机器学习领域,数据处理是不可或缺的一环。Pandas,作为Python中一个强大的数据分析库,以其高效、灵活的数据结构和数据操作功能,成为了数据科学家和数据分析师的首选工具之一。本章将详细介绍Pandas的基本概念、安装方法、核心数据结构(DataFrame和Series)、以及如何使用Pandas进行常见的数据处理任务,包括数据读取、数据清洗、数据转换、数据筛选、数据排序及数据聚合等。

1. Pandas简介与安装

Pandas简介

Pandas是Python的一个开源库,专为数据分析和操作而设计。它建立在NumPy之上,提供了高级数据结构和数据分析工具,能够让我们以更直观、更简便的方式处理结构化数据。Pandas的核心数据结构包括DataFrame和Series,它们分别用于表示二维的表格型数据和一维的序列型数据。

安装Pandas

要使用Pandas,首先需要确保你的Python环境中已经安装了Pandas库。如果尚未安装,可以通过pip命令轻松安装:

  1. pip install pandas

安装完成后,即可在Python脚本或Jupyter Notebook中通过import pandas as pd来导入Pandas库,并习惯性地将其简称为pd

2. Pandas核心数据结构

Series

Series是Pandas中一种一维的、长度可变的、异构的数据结构,可以看作是一个固定长度的有序字典(但比字典更灵活)。它主要用于存储单一类型的数据,如一组数字、字符串等。Series由索引(index)和数据(data)两部分组成,其中索引默认为整数序列,但可以自定义。

  1. import pandas as pd
  2. # 创建一个Series
  3. s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
  4. print(s)

DataFrame

DataFrame是Pandas中一种二维的、表格型的数据结构,可以看作是由多个Series组成的字典(共享相同的索引)。DataFrame中的每一列都可以是不同的数据类型,非常适合用于存储和处理表格数据。DataFrame同样拥有行索引和列标签。

  1. # 创建一个DataFrame
  2. data = {'Name': ['Tom', 'Jerry', 'Mickey', 'Donald'],
  3. 'Age': [5, 7, 8, 9],
  4. 'City': ['New York', 'Los Angeles', 'Chicago', 'Orlando']}
  5. df = pd.DataFrame(data)
  6. print(df)

3. 数据读取

Pandas支持多种数据源的读取,包括CSV、Excel、JSON、SQL数据库等。这里以最常用的CSV文件为例。

  1. # 读取CSV文件
  2. df = pd.read_csv('example.csv')
  3. print(df.head()) # 默认显示前五行数据

对于Excel文件,可以使用pd.read_excel()函数,但需要注意,读取Excel文件可能需要先安装openpyxlxlrd库作为引擎。

4. 数据清洗

数据清洗是数据处理中至关重要的一步,涉及缺失值处理、重复值处理、异常值处理等。

  • 缺失值处理:可以使用fillna()填充缺失值,或使用dropna()删除含有缺失值的行或列。
  1. # 填充缺失值
  2. df_filled = df.fillna(0) # 假设用0填充缺失值
  3. # 删除含有缺失值的行
  4. df_dropped = df.dropna()
  • 重复值处理:使用duplicated()检测重复值,drop_duplicates()删除重复行。
  1. # 查找重复行
  2. duplicates = df.duplicated()
  3. # 删除重复行
  4. df_unique = df.drop_duplicates()

5. 数据转换

数据转换涉及数据类型转换、列名修改、数据重排等操作。

  • 数据类型转换:使用astype()方法转换数据类型。
  1. # 将Age列的数据类型转换为整型
  2. df['Age'] = df['Age'].astype(int)
  • 列名修改:使用rename()方法修改列名。
  1. # 修改列名
  2. df_renamed = df.rename(columns={'Name': 'FullName'})

6. 数据筛选

Pandas提供了丰富的条件筛选功能,允许我们根据特定条件选择数据。

  • 单条件筛选:使用布尔索引。
  1. # 选择Age大于7的行
  2. filtered_df = df[df['Age'] > 7]
  • 多条件筛选:结合使用&(与)、|(或)等逻辑运算符。
  1. # 选择Age大于7且City为'New York'的行
  2. filtered_df_multi = df[(df['Age'] > 7) & (df['City'] == 'New York')]

7. 数据排序

Pandas支持按单列或多列对数据进行排序。

  • 单列排序:使用sort_values()方法。
  1. # 按Age列升序排序
  2. sorted_df = df.sort_values(by='Age')
  • 多列排序:在by参数中传入列名的列表,并通过ascending参数控制排序顺序。
  1. # 先按City升序排序,再按Age降序排序
  2. sorted_df_multi = df.sort_values(by=['City', 'Age'], ascending=[True, False])

8. 数据聚合

数据聚合是数据分析中的常用操作,用于对数据进行分组并计算汇总统计量。

  • 分组聚合:使用groupby()方法进行分组,然后结合聚合函数(如sum()mean()count()等)进行聚合计算。
  1. # 按City分组,计算每个城市的平均年龄
  2. grouped = df.groupby('City')['Age'].mean()
  3. print(grouped)

结语

本章介绍了Pandas的基本概念和核心数据结构,并详细讲解了如何使用Pandas进行数据的读取、清洗、转换、筛选、排序和聚合等常见操作。Pandas的强大功能远不止于此,随着学习的深入,你将能够更加灵活地运用Pandas来解决复杂的数据处理问题。希望本章内容能为你的NLP学习之旅打下坚实的基础,让你在数据处理方面更加得心应手。