Power
Pandas 核心概念
Pandas 是 Python 中用于数据处理和分析的核心库,核心数据结构有两个:
- Series:一维标签化数组(可以理解为带索引的列)
- DataFrame:二维标签化表格(可以理解为带行/列索引的 Excel 表格)
1. 安装与导入
提示
Pandas 是一个第三方库,需要先安装才能使用。可以通过 pip 命令安装,在此之前请先确认已经安装了 Python 3。
首先确保安装了 Pandas,然后导入(惯例简写为 pd):
bash
# 安装(如果未安装,建议在虚拟环境中安装,避免全局污染)
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活虚拟环境
python3 -m pip install pandas # 安装 pandaspython
# 导入
import pandas as pd
import numpy as np # 常和Pandas配合使用,处理数值计算2. 创建核心数据结构
2.1 创建 Series
python
# 基础创建:值 + 自定义索引
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print("Series内容:")
print(s)
# 输出:
# a 10
# b 20
# c 30
# d 40
# dtype: int64
# 常用属性
print("\nSeries索引:", s.index) # 获取索引
print("Series值:", s.values) # 获取值(数组形式)
print("Series数据类型:", s.dtype) # 获取数据类型2.2 创建 DataFrame
python
# 方式1:从字典创建(最常用)
data = {
'姓名': ['张三', '李四', '王五'],
'年龄': [20, 25, 30],
'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
print("DataFrame内容:")
print(df)
# 输出:
# 姓名 年龄 城市
# 0 张三 20 北京
# 1 李四 25 上海
# 2 王五 30 广州
# 方式2:自定义行索引
df = pd.DataFrame(data, index=['员工1', '员工2', '员工3'])
print("\n自定义行索引的DataFrame:")
print(df)3. 数据读取与保存(实战核心)
Pandas 支持读取/保存多种格式(Excel、CSV、JSON 等),最常用的是 CSV 和 Excel:
python
# 读取CSV文件
# df = pd.read_csv('你的文件路径.csv', encoding='utf-8') # 中文文件建议指定编码
# 读取Excel文件(需先安装openpyxl:pip install openpyxl)
# df = pd.read_excel('你的文件路径.xlsx', sheet_name='Sheet1')
# 保存为CSV
# df.to_csv('保存路径.csv', index=False, encoding='utf-8') # index=False不保存行索引
# 保存为Excel
# df.to_excel('保存路径.xlsx', index=False, sheet_name='数据')4. 数据查看与筛选(最常用操作)
python
# 1. 查看数据基本信息
print("前2行数据:")
print(df.head(2)) # 查看前n行(默认5行)
# print(df.tail(2)) # 查看后n行
print("\n数据基本信息:")
df.info() # 查看列名、数据类型、非空值数量
print("\n数据统计摘要:")
print(df.describe()) # 数值列的均值、标准差、最值等
# 2. 按列筛选
print("\n筛选'姓名'列:")
print(df['姓名']) # 单列
print("\n筛选'姓名'和'年龄'列:")
print(df[['姓名', '年龄']]) # 多列(注意双层括号)
# 3. 按条件筛选
print("\n筛选年龄>22的行:")
print(df[df['年龄'] > 22])
# 4. 按行索引筛选
print("\n筛选'员工2'行:")
print(df.loc['员工2']) # 按索引名筛选
# print(df.iloc[1]) # 按行号筛选(从0开始)5. 数据清洗(实战高频)
python
# 1. 处理缺失值
df_clean = df.copy() # 避免修改原数据
# df_clean.dropna() # 删除含缺失值的行
# df_clean.fillna({'年龄': 0, '城市': '未知'}) # 填充缺失值
# 2. 处理重复值
# df_clean.drop_duplicates() # 删除重复行
# 3. 修改列名
df_clean.rename(columns={'姓名': '员工姓名', '年龄': '员工年龄'}, inplace=True)
print("\n修改列名后:")
print(df_clean)
# 输出:
# 员工姓名 员工年龄 城市
# 0 张三 20 北京
# 1 李四 25 上海
# 2 王五 30 广州
# 4. 数据类型转换
# df_clean['年龄'] = df_clean['年龄'].astype(float) # 转为浮点型6. 简单数据运算
python
# 1. 新增列
df['年龄+5'] = df['年龄'] + 5 # 基于现有列计算
print("\n新增列后:")
print(df)
# 输出:
# 姓名 年龄 城市 年龄+5
# 0 张三 20 北京 25
# 1 李四 25 上海 30
# 2 王五 30 广州 35
# 2. 分组统计
# print(df.groupby('城市')['年龄'].mean()) # 按城市分组,计算年龄均值7. 总结
- Pandas 核心是 Series(一维) 和 DataFrame(二维),DataFrame 是日常使用的核心。
- 新手先掌握 数据读取/查看/筛选/清洗 这 4 类操作,能覆盖 80%的基础场景。
- 核心语法:
df[]筛选列/条件行、df.loc[]按索引筛选、df.info()/df.head()查看数据。