公开笔记:Pandas 详细介绍

Pandas 详细介绍

1. 概述

        Pandas 是一个开源的 Python 库,专为数据操作和分析设计。它提供了高效的数据结构和工具,使得处理结构化数据变得简单直观。Pandas 的名字来源于“Panel Data”(面板数据),是计量经济学中的一个术语。

2. 主要数据结构

        Pandas 提供了两种主要的数据结构:Series 和 DataFrame

  • Series:

    • 一维数组,类似于 Python 中的列表或 NumPy 中的数组。

    • 每个元素都有一个索引,默认从 0 开始。

    • 可以存储不同类型的数据,但通常用于存储同类型数据。

  • DataFrame:

    • 二维表格,类似于 Excel 表格或 SQL 表。

    • 每列可以是不同的数据类型(如数值、字符串、布尔值等)。

    • 有行索引和列索引,方便数据的访问和操作。

3. 安装与导入

        可以通过 pip 安装 Pandas:

pip install pandas

导入 Pandas 库:

import pandas as pd
4. 基本操作
4.1 创建 Series 和 DataFrame
# 创建 Series
s = pd.Series([1, 2, 3, 4, 5])
# 创建 DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
4.2 数据读取与写入

        Pandas 支持多种文件格式的读取和写入,如 CSV、Excel、SQL 等。

# 读取 CSV 文件
df = pd.read_csv('data.csv')

# 写入 CSV 文件
df.to_csv('output.csv', index=False)
4.3 数据查看与选择
# 查看前几行
df.head()

# 查看后几行
df.tail()

# 选择列
df['Name']

# 选择行
df.loc[0]  # 通过标签
df.iloc[0]  # 通过位置
4.4 数据清洗

        Pandas 提供了丰富的数据清洗功能,如处理缺失值、重复值等。

# 处理缺失值
df.dropna()  # 删除包含缺失值的行
df.fillna(0)  # 用 0 填充缺失值

# 删除重复值
df.drop_duplicates()
4.5 数据操作

        Pandas 支持多种数据操作,如排序、分组、合并等。

# 排序
df.sort_values(by='Age')

# 分组
df.groupby('City').mean()

# 合并
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
pd.concat([df1, df2])
4.6 数据统计

        Pandas 提供了丰富的统计函数,如均值、中位数、标准差等。

# 描述性统计
df.describe()

# 计算均值
df['Age'].mean()

# 计算标准差
df['Age'].std()
5. 高级功能
5.1 时间序列处理

        Pandas 对时间序列数据提供了强大的支持。

# 创建时间序列
dates = pd.date_range('20230101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

# 重采样
df.resample('M').mean()
5.2 数据透视表

        Pandas 支持创建数据透视表,方便数据的汇总和分析。

# 创建数据透视表
df.pivot_table(values='Age', index='City', columns='Name', aggfunc=np.mean)
5.3 数据可视化

        Pandas 集成了 Matplotlib,可以方便地进行数据可视化。

# 绘制折线图
df.plot()

# 绘制柱状图
df.plot(kind='bar')
6. 性能优化

        Pandas 提供了多种性能优化方法,如使用 Categorical 类型、apply 函数等。

# 使用 Categorical 类型
df['City'] = df['City'].astype('category')

# 使用 apply 函数
df['Age'] = df['Age'].apply(lambda x: x * 2)
7. 总结

        Pandas 是 Python 数据科学生态系统中不可或缺的一部分。它提供了高效、灵活的数据结构,使得数据操作和分析变得简单直观。无论是数据清洗、数据操作还是数据可视化,Pandas 都能提供强大的支持。

通过掌握 Pandas,你可以更高效地处理和分析数据,为数据科学和机器学习项目打下坚实的基础。

8. 详细功能介绍
8.1 Series
  • 创建 Series:

    s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
  • 访问元素:

    s['a']  # 输出 1
  • 基本操作:

    s + 10  # 每个元素加 10
    s * 2   # 每个元素乘以 2
8.2 DataFrame
  • 创建 DataFrame:

    data = {
        'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']
    }
    df = pd.DataFrame(data)
  • 访问列:

    df['Name']  # 访问 Name 列
  • 访问行:

    df.loc[0]  # 访问第一行
    df.iloc[0]  # 通过位置访问第一行
  • 添加列:

    df['Salary'] = [50000, 60000, 70000]
  • 删除列:

    df.drop('Salary', axis=1, inplace=True)
8.3 数据清洗
  • 处理缺失值:

    df.dropna()  # 删除包含缺失值的行
    df.fillna(0)  # 用 0 填充缺失值
  • 删除重复值:

    df.drop_duplicates()
  • 替换值:

    df.replace({'City': {'New York': 'NY'}})
8.4 数据操作
  • 排序:

    df.sort_values(by='Age', ascending=False)
  • 分组:

    df.groupby('City').mean()
  • 合并:

    df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
    df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
    pd.concat([df1, df2])
8.5 数据统计
  • 描述性统计:

    df.describe()
  • 计算均值:

    df['Age'].mean()
  • 计算标准差:

    df['Age'].std()
8.6 时间序列处理
  • 创建时间序列:

    dates = pd.date_range('20230101', periods=6)
    df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
  • 重采样:

    df.resample('M').mean()
8.7 数据透视表
  • 创建数据透视表:

    df.pivot_table(values='Age', index='City', columns='Name', aggfunc=np.mean)
8.8 数据可视化
  • 绘制折线图:

    df.plot()
  • 绘制柱状图:

    df.plot(kind='bar')
8.9 性能优化
  • 使用 Categorical 类型:

    df['City'] = df['City'].astype('category')
  • 使用 apply 函数:

    df['Age'] = df['Age'].apply(lambda x: x * 2)
9. 总结

        Pandas 是 Python 数据科学生态系统中不可或缺的一部分。它提供了高效、灵活的数据结构,使得数据操作和分析变得简单直观。无论是数据清洗、数据操作还是数据可视化,Pandas 都能提供强大的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值