linRichielinRichie
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
    • Python学习指南
  • 快速开始

    • Python: 输入与输出 (I/O)
    • Python: 异常处理 try-except
    • Python: List深入概述
    • Python: 面向对象编程(OOP)
  • Python 语法库函数

    • 语法库目录
    • 库

      • library目录
      • argparse:解析命令行参数
      • difflib:比较序列并生成差异信息
      • dnspython: DNS处理库
      • IPy:IP地址处理库
      • logging:记录和管理日志信息
      • os:访问和操作操作系统
      • psutil:系统性能信息库
      • re:正则表达式库
      • smtplib:邮件发送库
    • 函数

      • function目录
      • any() 函数
      • input 函数
      • lambda 和 map 函数
      • reversed()函数
      • zip()函数
    • 语句

      • statement目录
      • import 语句
      • Try/Exception 异常
    • 概念

      • concept目录
      • 深拷贝与浅拷贝
      • 列表、字典与元组
      • 文件读写
      • IO: 输入与输出
      • 逻辑判断与条件语句
      • OOP 面向对象:class
      • OOP: 面向对象编程
  • SQLAlchemy

    • 获取insert或者update的id
  • Pandas

    • Pandas目录
    • Pandas:基础操作
    • Pandas:数据处理与转换
    • Pandas: 数据写入 excel 表格
  • Python前端框架

    • Flask

      • 1. Flask简介
      • 2. Flask程序基本结构
      • 3. Flask请求-响应循环
      • 4. flask案例: 框架网页查询IP
      • Python: Flask中的GitHub OAuth
    • Django

      • chapter-01:Django框架认识

        • 1.1 Django的产生背景
        • 1.2 MTV设计模式
        • 1.3 Django 主要功能模块
      • chapter-02:开发环境配置

        • 2.1 Python的安装与配置
        • 2.2 虚拟环境安装与配置
        • 2.3 Django安装与配置
        • 2.4 MySQL安装配置
      • chapter-03:项目框架搭建

        • 3.1 Django管理工具-创建项目骨架
        • 3.2 修改项目的默认配置
        • 3.3 初始化项目环境
      • chapter-04:ORM应用与原理剖析

        • 4.1 构建POST应用需要的数据集
        • 4.2 Model相关的概念和使用方法
        • 4.3 Model的查询操作API
        • 4.4 ORM实现原理
      • chapter-05:Django管理后台

        • 5.1 将Model注册到管理后台
        • 5.2 管理后台实现原理
      • chapter-06:视图

        • 6.1 视图基础
        • 6.2 视图的高级特性和快捷方法
        • 6.3 基于类的通用视图
      • chapter-07:模板系统

        • 7.1 模板系统基础
        • 7.2 模板语言
      • chapter-08:表单系统

        • 8.2 使用表单系统实现表单: ModelForm
      • chapter-09:用户认证系统

        • 9.1 用户与身份认证
        • 9.2 权限管理
        • 9.3 用户认证系统应用
      • chapter-10:Django路由系统

        • 10.1 路由系统基础
      • chapter-11:Django中间件

        • 11.1 中间件基础
  • Python例子

    • Python: Linux的Shell命令
    • Python: PEP8自动格式化代码
    • Python: pip操作
    • Python: 业务服务监控
    • Python: 从文件逐行读取数据
    • 将链表转换为字符串
    • Python: 检查URL是否能正常访问
    • Python: 爬取网易云音乐
    • Python: 读取目录下的所有内容
    • 案例研究:文本统计
  • Python爬虫

    • 数据解析工具:Xpath
  • 算法题

    • 02:两数相加
    • 09:回文数
    • 13:罗马数值转换为整数
    • 14:最长公共前缀

Pandas:基础操作

  • 1. DataFrame 的创建与基本操作
    • 1.1 创建 DataFrame
    • 1.2 查看数据
  • 2. 数据选择与过滤
    • 2.1 基于列名选择
    • 2.2 基于位置选择
  • 3. 数据处理
    • 3.1 处理缺失值
    • 3.2 数据转换
  • 4. 数据聚合与分组
  • 5. 性能优化技巧
    • 5.1 高效的数据读取
    • 5.2 内存优化
  • 总结

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.columns

2. 数据选择与过滤

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 的基础操作是进行高级数据分析的基础。

最近更新时间:
Prev
Pandas目录
Next
Pandas:数据处理与转换