← 返回首页

第7章 · Pandas与Numpy

Python数据科学核心库

NumPy和Pandas是Python数据科学生态系统中最核心的两个库。NumPy提供了高效的数值计算能力,而Pandas则提供了强大的数据处理和分析工具。本章将介绍这两个库的基本概念和常用操作。

学习目标:完成本章后,您将能够使用NumPy进行数组操作和向量化计算,掌握Pandas的Series和DataFrame数据结构,并能够进行数据选择、过滤和缺失值处理。

本章内容概览

NumPy 示例

import numpy as np

print("=== NumPy数组与向量化 ===")
# 创建数组
arr = np.array([1, 2, 3, 4, 5])
print(f"一维数组: {arr}")

# 二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(f"二维数组:\n{matrix}")

# 向量化运算
arr_squared = arr ** 2
print(f"数组平方: {arr_squared}")

# 数组统计
print(f"数组平均值: {np.mean(arr):.2f}")
print(f"数组标准差: {np.std(arr):.2f}")

# 数组操作
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(f"数组相加: {arr1 + arr2}")
print(f"数组点积: {np.dot(arr1, arr2)}")

Pandas 示例

import pandas as pd

print("=== Pandas Series/DataFrame ===")
# 创建Series
series_data = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(f"Series:\n{series_data}")

# 创建DataFrame
data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '年龄': [25, 30, 35, 28],
    '城市': ['北京', '上海', '广州', '深圳'],
    '工资': [5000, 8000, 6000, 7500]
}
df = pd.DataFrame(data)
print(f"DataFrame:\n{df}")

print("\n=== 选择、过滤与缺失值 ===")
// 选择列
print(f"姓名列:\n{df['姓名']}")

// 条件过滤
high_salary = df[df['工资'] > 6000]
print(f"工资大于6000的员工:\n{high_salary}")

// 处理缺失值
df_with_na = df.copy()
df_with_na.loc[2, '工资'] = None  // 添加缺失值
print(f"包含缺失值的DataFrame:\n{df_with_na}")
print(f"缺失值统计:\n{df_with_na.isnull().sum()}")

// 填充缺失值
df_filled = df_with_na.fillna({'工资': df_with_na['工资'].mean()})
print(f"填充缺失值后的DataFrame:\n{df_filled}")

导航