====== Python Pandas 基础教程 ======
Pandas 是 Python 中最流行的数据分析和处理库。它提供了高性能、易于使用的数据结构和数据分析工具。
===== 1. 安装与导入 =====
在使用 Pandas 之前,你需要确保已经安装了它。通常我们会结合 `numpy` 一起使用。
==== 安装 ====
在终端或命令行中运行以下命令:
pip install pandas numpy
==== 导入 ====
在 Python 脚本中,我们通常使用别名 `pd` 来导入 Pandas:
import pandas as pd
import numpy as np
===== 2. 核心数据结构 =====
Pandas 有两个主要的数据结构:**Series** (一维) 和 **DataFrame** (二维)。
==== 2.1 Series (序列) ====
Series 是一种类似于一维数组的对象,它由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。
# 从列表创建 Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
**输出:**
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
==== 2.2 DataFrame (数据框) ====
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。
**通过字典创建 DataFrame:**
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [24, 27, 22, 32],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)
**输出:**
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston
===== 3. 数据读取与写入 =====
Pandas 支持多种文件格式的读写,最常用的是 CSV 和 Excel。
^ 格式 ^ 读取方法 ^ 写入方法 ^
| CSV | `pd.read_csv('file.csv')` | `df.to_csv('file.csv')` |
| Excel | `pd.read_excel('file.xlsx')` | `df.to_excel('file.xlsx')` |
| JSON | `pd.read_json('file.json')` | `df.to_json('file.json')` |
| SQL | `pd.read_sql(query, connection)` | `df.to_sql('table', connection)` |
**示例:读取 CSV 文件**
# 假设当前目录下有一个 data.csv 文件
# df = pd.read_csv('data.csv')
# print(df.head()) # 查看前5行
===== 4. 查看数据 =====
加载数据后,我们需要快速了解数据的概况。
* **查看头部和尾部**
* `df.head(n)`: 查看前 n 行(默认 5 行)。
* `df.tail(n)`: 查看后 n 行。
* **查看索引和列名**
* `df.index`: 获取行索引。
* `df.columns`: 获取列名。
* **统计摘要**
* `df.describe()`: 快速查看数值列的统计摘要(均值、标准差、最大最小值等)。
* **数据转置**
* `df.T`: 行列互换。
* **按轴排序**
* `df.sort_index(axis=1, ascending=False)`: 按列名降序排列。
* **按值排序**
* `df.sort_values(by='Age')`: 按 'Age' 列的值排序。
# 示例:查看统计摘要
print(df.describe())
===== 5. 数据选择 =====
Pandas 推荐使用优化的数据访问方法:`.at`, `.iat`, `.loc`, `.iloc`。
* **按标签选择 (.loc)**
# 选择 'Name' 和 'Age' 两列的所有行
print(df.loc[:, ['Name', 'Age']])
* **按位置选择 (.iloc)**
# 选择第3行(索引为2)
print(df.iloc[2])
# 选择前3行,前2列
print(df.iloc[0:3, 0:2])
* **布尔索引 (条件筛选)**
# 筛选 Age 大于 25 的行
print(df[df['Age'] > 25])
----
**相关链接:**
* [[https://pandas.pydata.org/docs/|Pandas 官方文档]]
* [[https://www.pypandas.cn/|Pandas 中文网]]