🐼 Pandas 基础回顾
Series 与 DataFrame · 创建 · 属性 · 索引切片 · 数据类型
📌 创建 Series & DataFrame
🌟 从列表、字典、NumPy 数组快速构建
| 结构 | 创建方式 | 示例代码 |
|---|---|---|
| Series | pd.Series(data, index) | s = pd.Series([10, 20, 30], index=['a','b','c']) |
| DataFrame | pd.DataFrame(dict) | df = pd.DataFrame({'姓名': ['小智','小霞'], '分数': [95, 88]}) |
| 从 NumPy | pd.DataFrame(np.array) | df = pd.DataFrame(np.random.rand(3,2), columns=['X','Y']) |
import pandas as pd
import numpy as np
# 创建 Series
s1 = pd.Series([5, 6, 7, 8], index=['春','夏','秋','冬'])
print(s1)
# 创建 DataFrame (字典)
df_students = pd.DataFrame({
'姓名': ['小明', '小红', '小刚'],
'年龄': [10, 11, 10],
'爱好': ['画画', '唱歌', '编程']
})
print(df_students)
🔍 基本属性 · 一览
🏷️ .shape
📋 .dtypes
🧾 .columns
🔢 .index
📊 .values
📏 .size
📌 .ndim
✂️ 索引与切片 · 灵活访问
- 标签索引 —
df['列名']、s['标签']、df.loc[行标签, 列标签] - 位置索引 —
df.iloc[行位置, 列位置]、s.iloc[整数] - 切片操作 —
df[1:4]、s['a':'c'](包含终点) - 布尔索引 —
df[df['年龄'] > 10]过滤数据
# 索引切片实战
df = pd.DataFrame({'水果': ['苹果','香蕉','橘子','葡萄'],'数量': [12, 8, 15, 7]})
print(df.loc[1:2, '水果']) # 标签切片
print(df.iloc[0:2, 0]) # 位置切片
print(df[df['数量'] >= 10]) # 布尔索引
🧬 常用数据类型 · dtypes
| Pandas 类型 | Python / NumPy 对应 | 说明 |
|---|---|---|
int64 | int, np.int64 | 整数数值 |
float64 | float, np.float64 | 浮点数 |
object | str, 混合类型 | 字符串或混合 |
bool | bool, np.bool_ | 布尔值 |
datetime64[ns] | datetime | 时间日期 |
category | pd.Categorical | 分类数据,节省内存 |
# 查看 & 转换数据类型
df = pd.DataFrame({'A': [1,2,3], 'B': [1.5, 2.5, 3.5], 'C': ['x','y','z']})
print(df.dtypes)
df['A'] = df['A'].astype('float64')
df['C'] = df['C'].astype('category')
print(df.dtypes)
✨ 回顾要点
- Series 一维带标签数组,类似字典+列表
- DataFrame 二维表格,多列Series组成
- 索引 灵活使用
loc/iloc/ 布尔 - dtype 决定内存与操作效率,善用
astype()与category