Pandas 入门教程:用 Python 开启你的数据科学之旅 – wiki基地


Pandas 入门教程:用 Python 开启你的数据科学之旅

在数据科学、机器学习和数据分析领域,Python 语言已经成为不可或缺的工具。而在 Python 的众多库中,Pandas 无疑是处理表格数据(structured data)的王者。无论你是数据分析新手,还是希望从 Excel 转向代码驱动分析的职场人士,掌握 Pandas 都将是你的必备技能。

本文将带你从零开始,一步步了解 Pandas 的核心概念,并学会如何使用它来执行基本的数据操作。

1. 什么是 Pandas?为什么选择它?

Pandas 是一个开源的 Python 库,构建在另一个强大的库 NumPy 之上。它的名字来源于“Panel Data”(面板数据),是经济学中用于多维度结构化数据集的术语。

为什么 Pandas 如此受欢迎?

  • 强大的数据结构:Pandas 提供了两种核心数据结构——Series(一维)和 DataFrame(二维),它们可以高效地处理不同类型的数据。
  • 轻松读写数据:可以轻松地从各种格式的文件中读取数据,如 CSV、Excel、JSON、SQL 数据库等,并将处理后的数据写回。
  • 便捷的数据清洗和预处理:处理缺失值、重复值,进行数据类型转换等操作都变得非常简单。
  • 灵活的数据筛选与查询:提供了强大且直观的方式来选择、切片和过滤数据。
  • 高性能:底层代码(主要是 C 和 Cython)经过高度优化,确保了数据处理的高速度。

简单来说,如果你需要用 Python 来处理任何与电子表格或数据库表格类似的数据,Pandas 就是你的最佳选择。

2. 安装 Pandas

在开始之前,请确保你已经安装了 Python。然后,打开你的终端或命令行工具,输入以下命令即可安装 Pandas:

bash
pip install pandas

如果你在使用 Anaconda 环境,Pandas 通常已经预装好了。

3. Pandas 的核心:Series 与 DataFrame

理解 SeriesDataFrame 是学习 Pandas 的关键。

Series:一维数据结构

Series 就像一个带标签的一维数组。你可以把它想象成电子表格中的一列。

“`python
import pandas as pd

创建一个简单的 Series

s = pd.Series([10, 20, 30, 40, 50], name=”Numbers”)
print(s)
“`

输出:
0 10
1 20
2 30
3 40
4 50
Name: Numbers, dtype: int64

左边的是索引 (Index),右边的是值 (Values)

DataFrame:二维数据结构

DataFrame 是 Pandas 的核心,它是一个二维的、带标签的数据结构,就像一个完整的电子表格或 SQL 表。它有行和列,每一列都可以是不同的数据类型。

你可以把 DataFrame 看作是由多个 Series 组成的字典。

“`python
import pandas as pd

使用字典创建一个 DataFrame

data = {
‘Name’: [‘Alice’, ‘Bob’, ‘Charlie’, ‘David’],
‘Age’: [25, 30, 35, 40],
‘City’: [‘New York’, ‘Paris’, ‘London’, ‘Tokyo’]
}

df = pd.DataFrame(data)
print(df)
“`

输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Paris
2 Charlie 35 London
3 David 40 Tokyo

4. 读取和写入数据

在真实世界中,数据通常存储在文件中。read_csv 是最常用的函数之一。

假设我们有一个名为 employees.csv 的文件,内容如下:

csv
ID,Name,Department,Salary
1,John Doe,HR,50000
2,Jane Smith,IT,75000
3,Peter Jones,Marketing,60000
4,Mary Brown,IT,80000

我们可以这样读取它:

“`python
import pandas as pd

从 CSV 文件读取数据

df_employees = pd.read_csv(’employees.csv’)

将 DataFrame 写入新的 CSV 文件,不包含索引

df_employees.to_csv(’employees_new.csv’, index=False)

“`

5. 探索你的数据

加载数据后,第一步通常是快速了解它的基本信息。

“`python

查看前 5 行数据

print(df_employees.head())

查看后 5 行数据

print(df_employees.tail())

获取 DataFrame 的基本信息(数据类型、非空值数量等)

print(df_employees.info())

获取数值列的描述性统计信息(计数、平均值、标准差、最小值、最大值等)

print(df_employees.describe())
“`

head() 的输出:
ID Name Department Salary
0 1 John Doe HR 50000
1 2 Jane Smith IT 75000
2 3 Peter Jones Marketing 60000
3 4 Mary Brown IT 80000

info() 的输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ID 4 non-null int64
1 Name 4 non-null object
2 Department 4 non-null object
3 Salary 4 non-null int64
dtypes: int64(2), object(2)
memory usage: 256.0+ bytes

6. 数据选择与过滤

Pandas 提供了非常灵活的方式来选择数据的特定部分。

选择列

“`python

选择单列,返回一个 Series

departments = df_employees[‘Department’]
print(departments)

选择多列,返回一个新的 DataFrame

subset = df_employees[[‘Name’, ‘Salary’]]
print(subset)
“`

选择行:lociloc

  • loc:基于标签 (label) 进行选择。
  • iloc:基于整数位置 (integer position) 进行选择。

“`python

loc: 选择索引为 1 的行

print(df_employees.loc[1])

iloc: 选择第 2 行(索引从 0 开始)

print(df_employees.iloc[1])

使用 loc 进行条件过滤:选择 IT 部门的所有员工

it_employees = df_employees.loc[df_employees[‘Department’] == ‘IT’]
print(it_employees)

复杂条件:选择工资大于 60000 的 IT 部门员工

high_salary_it = df_employees.loc[(df_employees[‘Department’] == ‘IT’) & (df_employees[‘Salary’] > 70000)]
print(high_salary_it)
“`

7. 添加与删除列

数据处理过程中,经常需要创建新列或删除不再需要的列。

“`python

添加一个新列 ‘Salary_USD’ (假设汇率为 0.14)

df_employees[‘Salary_USD’] = df_employees[‘Salary’] * 0.14
print(df_employees)

删除 ‘ID’ 列

axis=1 表示删除列,inplace=True 表示在原始 DataFrame 上修改

df_employees.drop(‘ID’, axis=1, inplace=True)

print(df_employees)

“`

8. 结语

恭喜你!你已经完成了 Pandas 的入门第一步。通过本文,你学会了:
– Pandas 的核心数据结构 SeriesDataFrame
– 如何读取 CSV 文件并对数据进行初步探索。
– 如何使用 lociloc 灵活地筛选和查询数据。
– 如何添加和删除列。

这只是冰山一角。Pandas 还拥有处理缺失数据、分组聚合 (groupby)、合并与连接 (merge, join)、时间序列分析等更多强大的功能。

数据科学的旅程漫长而有趣,而 Pandas 将是你在这条路上最可靠的伙伴之一。不断练习,挑战真实的数据集,你将很快成为一名数据处理高手。


滚动至顶部