pandas概述

1.概要

2.内容

Pandas 是 Python 中最常用的数据分析库之一,专为处理表格数据和时序数据设计。以下是其核心功能和使用示例:


📌 核心数据结构

  1. DataFrame
    二维表格型数据结构(类似 Excel),包含行索引和列名。

    import pandas as pd
    data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
    df = pd.DataFrame(data)
  2. Series
    一维带标签数组,可视为 DataFrame 的单列。

    s = pd.Series([1, 2, 3], name='Numbers')

🔧 常用操作

  1. 读取数据

    # CSV
    df = pd.read_csv('data.csv')
    # Excel
    df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

    数据清洗

    # 删除缺失值
    df.dropna()
    # 填充缺失值
    df.fillna(0)
    # 删除重复行
    df.drop_duplicates()

    数据筛选

    # 按条件筛选
    df[df['Age'] > 25]
    # 多条件筛选
    df[(df['Age'] > 25) & (df['Name'] == 'Bob')]

    数据聚合

    # 分组统计
    df.groupby('Category')['Sales'].sum()
    # 透视表
    df.pivot_table(index='Date', columns='Product', values='Revenue')

    合并数据

# 横向合并(按列)
pd.concat([df1, df2], axis=1)
# 纵向合并(按行)
pd.concat([df1, df2], axis=0)
# 数据库风格合并
pd.merge(df1, df2, on='key_column')

🚀 高效技巧

  • 向量化操作:避免逐行循环,优先使用内置函数(如 df['col'].apply()
  • 内存优化:指定数据类型减少内存占用

    df = pd.read_csv('data.csv', dtype={'ID': 'int32', 'Value': 'float32'})
  • 处理大数据:使用 Dask 库扩展 Pandas 功能

📊 可视化扩展

结合 Matplotlib/Seaborn 快速绘图:

import matplotlib.pyplot as plt
df['Age'].plot(kind='hist')
plt.show()

需要更具体的功能说明(如时间序列处理、文本数据处理等)或遇到具体问题?可以提供详细场景,我会给出针对性代码示例! 🐼

3.关联链接

4.关联知识

1.pandas主要作用 

Pandas 是 Python 生态中核心的数据分析库,专为处理结构化数据(表格、时序、多维数据)设计。其核心价值在于提供高效、灵活的数据操作接口,覆盖从数据加载、清洗、分析到输出的全流程。以下是其核心作用的详细解析:


📊 核心数据结构

1. DataFrame(二维表格)
  • 类似 Excel 的表格,包含行索引(index)列名(columns)
  • 支持异构数据类型(每列可独立指定类型,如整数、字符串、日期等)。
  • 典型场景:数据库查询结果、CSV/Excel 文件、日志数据。

import pandas as pd
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30], 'City': ['NY', 'London']}
df = pd.DataFrame(data)
2. Series(一维数组)
  • 带标签的数组,可视为 DataFrame 的单列。
  • 支持缺失值(NaN)和数学运算。

s = pd.Series([1, 2, 3], name='Numbers')

🧹 数据清洗与预处理

1. 处理缺失值
  • 识别缺失值:df.isnull()
  • 删除缺失值:df.dropna()
  • 填充缺失值:df.fillna(0) 或 df.fillna(method='ffill')(前向填充)
2. 处理重复值
  • 标记重复行:df.duplicated()
  • 删除重复行:df.drop_duplicates()
3. 数据类型转换
  • 强制转换列类型:df['Age'] = df['Age'].astype(float)
  • 自动推断类型:pd.to_numeric(df['Price'], errors='coerce')(将非法值转为 NaN)
4. 异常值处理
  • 基于统计阈值筛选:df[df['Value'] > df['Value'].mean() + 3*df['Value'].std()]
  • 替换异常值:df['Value'] = np.where(df['Value'] > 100, 100, df['Value'])

🔍 数据操作与分析

1. 筛选与过滤
  • 条件筛选:df[df['Age'] > 25]
  • 多条件筛选:df[(df['Age'] > 25) & (df['City'] == 'NY')]
  • 模糊匹配:df[df['Name'].str.contains('A')]
2. 排序与排名
  • 按列排序:df.sort_values(by='Age', ascending=False)
  • 生成排名:df['Rank'] = df['Score'].rank(ascending=False)
3. 分组聚合
  • 分组统计:df.groupby('Category')['Sales'].sum()
  • 多级分组:df.groupby(['Year', 'Month'])['Revenue'].mean()
  • 聚合函数:agg() 支持同时计算多个统计量(如 meansumcount
4. 透视表与交叉表
  • 透视表:df.pivot_table(index='Date', columns='Product', values='Revenue')
  • 交叉表:pd.crosstab(df['Gender'], df['Purchase'])
5. 窗口函数
  • 滚动计算:df['Rolling_Mean'] = df['Value'].rolling(window=3).mean()
  • 扩展排序:df['Rank'] = df['Score'].rank(pct=True)(计算百分位排名)

🔗 数据合并与连接

1. 横向合并(按列)
  • 合并 DataFrame:pd.concat([df1, df2], axis=1)
  • 类似 SQL JOIN:pd.merge(df1, df2, on='key_column', how='inner')(支持 innerleftrightouter
2. 纵向合并(按行)
  • 追加数据:pd.concat([df1, df2], axis=0)
  • 忽略重复列名:pd.concat([df1, df2], axis=0, ignore_index=True)

⏰ 时间序列处理

1. 日期解析
  • 字符串转日期:pd.to_datetime(df['Date'], format='%Y-%m-%d')
  • 自动推断格式:pd.to_datetime(df['Timestamp'])
2. 重采样与滚动窗口
  • 按月重采样:df.resample('M').sum()
  • 滑动窗口统计:df['Value'].rolling('7D').mean()
3. 时间偏移
  • 日期偏移:df['Date'] + pd.DateOffset(months=1)
  • 生成日期范围:pd.date_range(start='2025-01-01', end='2025-12-31', freq='D')

📤 输入与输出

1. 文件读写
  • CSV:pd.read_csv('data.csv') / df.to_csv('output.csv', index=False)
  • Excel:pd.read_excel('data.xlsx', sheet_name='Sheet1')
  • JSON:pd.read_json('data.json')
  • 数据库:pd.read_sql('SELECT * FROM table', connection)
2. 格式转换
  • DataFrame 转 NumPy:df.values
  • NumPy 转 DataFrame:pd.DataFrame(np.array, columns=['A', 'B'])

🚀 性能优化技巧

  1. 指定数据类型:减少内存占用(如 dtype={'ID': 'int32'}
  2. 分块读取:处理大文件(pd.read_csv('data.csv', chunksize=10000)
  3. 向量化操作:避免逐行循环(优先使用 df['col'].apply()
  4. 使用 Dask:扩展 Pandas 到大数据场景(dask.dataframe

🌰 典型应用场景

  • 数据预处理:清洗原始数据(如日志、传感器数据)
  • 探索性数据分析(EDA):快速生成统计摘要和可视化
  • 特征工程:为机器学习模型构建特征(如分箱、编码)
  • 报表生成:自动化生成汇总表格和图表

Pandas 的设计哲学是让数据分析师专注于问题本身,而非底层实现。通过提供统一的 API,它大幅降低了从原始数据到可分析格式的转换成本,是数据科学工作流程中不可或缺的工具。

2.numpy 

NumPy 是 Python 中用于科学计算的核心库,尤其擅长处理多维数组(ndarray)矩阵运算。以下是其核心功能和使用示例:


📌 核心数据结构:ndarray

多维数组对象,支持高效存储和操作同类型数据。

import numpy as np


# 创建一维数组
arr = np.array([1, 2, 3])


# 创建二维数组(矩阵)
matrix = np.array([[1, 2], [3, 4]])

🔧 常用操作

  1. 数组创建

    # 全零数组
    np.zeros((2, 3)) # 2行3列
    # 全一数组
    np.ones((3, 3))
    # 单位矩阵
    np.eye(3)
    # 等差数列
    np.arange(0, 10, 2) # [0,2,4,6,8]
    # 线性等分
    np.linspace(0, 1, 5) # [0.0, 0.25, 0.5, 0.75, 1.0]

    数学运算

    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    
    
    # 逐元素运算
    a + b # [5,7,9]
    a * 2 # [2,4,6]
    
    
    # 矩阵乘法
    np.dot(a, b) # 1*4 + 2*5 + 3*6 = 32
    
    
    # 聚合统计
    a.sum() # 6
    a.mean() # 2.0
    a.std() # 标准差

    广播机制
    自动扩展数组形状进行运算:

a = np.array([[1], [2], [3]]) # 形状 (3,1)
b = np.array([4, 5, 6]) # 形状 (3,)
a + b # 输出形状 (3,3)
  1. 索引与切片

    arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
    arr[0] # 第一行 [1,2,3]
    arr[:, 1] # 第二列 [2,5,8]
    arr[1:3, :2] # 切片 [[4,5], [7,8]]

🚀 高效技巧

  • 向量化运算:避免Python循环,利用C底层优化

    # 慢:Python循环
    result = []
    for x in arr:
    result.append(x**2)
    
    
    # 快:NumPy向量化
    arr ** 2

  • 内存视图:切片不复制数据,节省内存

    sub_arr = arr[1:3] # 与原数组共享内存
  • 条件筛选

    arr[arr > 5] # 返回所有大于5的元素

🤝 与Pandas协同

import pandas as pd


# DataFrame转NumPy数组
df = pd.DataFrame({'A': [1,2], 'B': [3,4]})
df.values # 输出:array([[1,3], [2,4]])


# NumPy数组转DataFrame
pd.DataFrame(np.eye(2), columns=['A', 'B'])

🌰 典型应用场景

  1. 图像处理:RGB通道作为三维数组
  2. 机器学习:特征矩阵标准化(如 (x - μ) / σ
  3. 信号处理:傅里叶变换(np.fft
  4. 随机数生成np.random.randn(3,3) 生成正态分布样本

需要更具体的功能说明(如线性代数、稀疏矩阵等)或遇到性能优化问题?可以提供详细场景,我会给出针对性代码示例! 🚀

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值