Pandas:基础操作
2025-02-17
1. DataFrame 的创建与基本操作
1.1 创建 DataFrame
import pandas as pd
import numpy as np
# 从字典创建
data = {
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 35],
'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
# 从列表创建
data_list = [
['张三', 25, '北京'],
['李四', 30, '上海'],
['王五', 35, '广州']
]
df = pd.DataFrame(data_list, columns=['姓名', '年龄', '城市'])
print(df)1.2 查看数据
# 查看前几行
df.head()
# 查看基本信息
df.info()
# 查看统计摘要
df.describe()
# 查看索引
df.index
# 查看列名
df.columns2. 数据选择与过滤
2.1 基于列名选择
# 选择单列
ages = df['年龄']
# 选择多列
subset = df[['姓名', '年龄']]
# 条件过滤
young_people = df[df['年龄'] < 30]2.2 基于位置选择
# 使用 iloc 按位置选择
first_row = df.iloc[0] # 第一行
first_two_rows = df.iloc[0:2] # 前两行
specific_cell = df.iloc[0, 1] # 第一行第二列
# 使用 loc 按标签选择
row_by_index = df.loc[0]
subset = df.loc[0:2, ['姓名', '年龄']]3. 数据处理
3.1 处理缺失值
# 检查缺失值
df.isna().sum()
# 填充缺失值
df.fillna(0) # 用 0 填充
df.fillna(method='ffill') # 用前一个值填充
df.fillna(method='bfill') # 用后一个值填充
# 删除包含缺失值的行
df.dropna()3.2 数据转换
# 类型转换
df['年龄'] = df['年龄'].astype(float)
# 应用函数
df['年龄'] = df['年龄'].apply(lambda x: x + 1)
# 重命名列
df = df.rename(columns={'年龄': 'age'})4. 数据聚合与分组
# 按城市分组并计算年龄平均值
city_stats = df.groupby('城市')['年龄'].mean()
# 多个聚合操作
stats = df.groupby('城市').agg({
'年龄': ['mean', 'max', 'min'],
'姓名': 'count'
})5. 性能优化技巧
5.1 高效的数据读取
# 只读取需要的列
df = pd.read_csv('data.csv', usecols=['姓名', '年龄'])
# 指定数据类型
df = pd.read_csv('data.csv', dtype={
'年龄': 'int32',
'姓名': 'category'
})5.2 内存优化
# 使用类别类型节省内存
df['城市'] = df['城市'].astype('category')
# 使用较小的数值类型
df['年龄'] = df['年龄'].astype('int32')总结
- Pandas 提供了强大而灵活的数据处理功能
- 合理使用索引和数据类型可以提高性能
- 链式操作可以让代码更简洁易读
- 善用 groupby 和聚合函数可以快速获取数据洞察
注意:在处理大数据集时,建议使用适当的数据类型和优化技巧来提高性能。同时,熟练掌握 Pandas 的基础操作是进行高级数据分析的基础。