数据处理和统计分析——03 Pandas 数据结构

发布于:2025-07-29 ⋅ 阅读:(21) ⋅ 点赞:(0)

1 创建 Series 和 DataFrame

  • DataFrame 和 Series 是 Pandas 最基本的两种数据结构;
  • 在 Pandas 中,Series 是一维容器,Series 表示 DataFrame 的每一列;
    • 可以把 DataFrame 看作由 Series 对象组成的字典,其中 key 是列名,值是 Series;
    • Series 类似于 Python 中的列表,但是它的每个元素的数据类型必须相同。

1.1 创建 Series

  • 创建 Series 的最简单方法是传入一个 Python 列表;

    在这里插入图片描述

  • 创建 Series 时,可以通过 index 参数来指定行索引;

    在这里插入图片描述

1.2 创建 DataFrame

  • 可以使用字典来创建 DataFrame

    在这里插入图片描述

  • 创建 DataFrame 时可以指定列的顺序和行索引

    在这里插入图片描述

2 Series 常用操作

2.1 Series 常用属性

  • 加载本地的csv文件:

    在这里插入图片描述

  • 使用 DataFrame 的loc属性获取数据集里的一行,就会得到一个Series对象

    在这里插入图片描述

  • 打印这一个Series对象,左边是列名(行索引),右边是这一列对应的值

    在这里插入图片描述

  • 可以通过indexvalues属性获取行索引和值

    在这里插入图片描述

    每一个Series的值是一个ndarray对象

    在这里插入图片描述

  • DataFrame的keys()方法,作用和Series的index属性一样

    在这里插入图片描述

  • 常用属性汇总:

    属性 说明
    loc 使用索引值取子集
    iloc 根据行索引的位置取值
    T Series 的转置矩阵
    shape 数据的维数
    size Series 中元素的数量
    values Series的值

2.2 Series 常用方法

在这里插入图片描述

  • 针对数值型的Series,可以进行以下常见计算:

    在这里插入图片描述

  • 通过value_counts()方法,可以返回不同值的条目数量

    在这里插入图片描述

    在这里插入图片描述

  • 通过count()方法可以返回有多少非空值

    在这里插入图片描述

  • 通过describe()方法打印描述信息

    在这里插入图片描述

  • 其它常用方法:

    方法 说明
    append 连接两个或多个 Series
    corr 计算与另一个 Series 的相关系数
    cov 计算与另一个 Series 的协方差
    describe 计算常见统计量
    drop_duplicates 返回去重之后的 Series
    equals 判断两个 Series 是否相同
    get_values 获取 Series 的值,作用与 values 属性相同
    hist 绘制直方图
    isin Series 中是否包含某些值
    min 返回最小值
    max 返回最大值
    mean 返回算术平均值
    median 返回中位数
    mode 返回众数
    quantile 返回指定位置的分位数
    replace 用指定值代替 Series 中的值
    sample 返回 Series 的随机采样值
    sort_values 对值进行排序
    to_frame 把 Series 转换为 DataFrame
    unique 去重返回数组

2.3 Series 的布尔索引

  • 手动创建布尔值列表,对Series进行索引,返回Series对应于布尔值列表中为True的位置的元素;

    在这里插入图片描述

  • 筛选年龄大于平均年龄的科学家

    在这里插入图片描述

2.4 Series 的运算

  • Series和数值型变量计算时,变量会与Series中的每个元素逐一进行计算;

    在这里插入图片描述

    • 还可以有:

      ages*2
      ages+ages
      
  • 元素个数不同的Series之间进行计算,会根据索引进行。索引不同的元素最终计算的结果会填充成缺失值,用NaN表示;

    在这里插入图片描述

  • Series之间进行计算时,数据会尽可能依据索引标签进行相互计算

    在这里插入图片描述

3 DataFrame 常用操作

3.1 DataFrame 的常用属性和方法

  • DataFrame是Pandas中最常见的对象,Series数据结构的许多属性和方法在DataFrame中也一样适用;

    在这里插入图片描述

3.2 DataFrame 的布尔索引

在这里插入图片描述

3.3 DataFrame 的运算

在这里插入图片描述

4 更改 Series 和 DataFrame

4.1 给行索引命名

  • 加载数据文件时,如果不指定行索引,Pandas会自动加上从0开始的索引;

    在这里插入图片描述- 通过set_index()方法设置行索引名字
    在这里插入图片描述

  • 加载数据的时候,可以通过通过index_col参数,指定使用某一列数据作为行索引

    在这里插入图片描述

  • 通过reset_index()方法可以重置索引

    在这里插入图片描述

4.2 DataFrane 修改行名和列名

  • 通过rename()方法对原有的行索引名和列名进行修改

    在这里插入图片描述

  • indexcolumns属性提取出来,修改之后,再赋值回去

    在这里插入图片描述

4.3 添加、删除、插入列

  • 通过dataframe[列名]添加新列

    在这里插入图片描述

  • 调用drop()方法删除列

    在这里插入图片描述

  • 使用insert()方法插入列

    在这里插入图片描述

5 导出和导入数据

5.1 pickle文件

  • pickle文件简介:

    • 如要保存的对象是计算的中间结果,或者保存的对象以后会在Python中复用,可把对象保存为.pickle文件;
    • pickle文件只能在Python中使用;
    • 文件的扩展名可以是.p.pkl.pickle
    movie
    #%%
    scientists = pd.read_csv('data/scientists.csv')
    # 提取 'Name' 列
    names = scientists['Name']
    # 将 'Name' 列保存为 pickle 文件
    names.to_pickle('output/scientists_name.pickle') # 要提前建好output文件夹
    # 将整个 DataFrame 保存为 pickle 文件
    scientists.to_pickle('output/scientists_df.pickle')
    
  • 可以使用pd.read_pickle函数读取.pickle文件中的数据

    在这里插入图片描述

5.2 CSV文件

  • CSV(逗号分隔值)是很灵活的一种数据存储格式

  • 在CSV文件中,对于每一行,各列采用逗号分隔

  • 除了逗号,还可以使用其他类型的分隔符,比如TSV文件,使用制表符作为分隔符

  • CSV是数据协作和共享的首选格式

    # 将 'names' Series 保存为 CSV 文件
    names.to_csv('output/scientists_name.csv')
    # 将整个 DataFrame 保存为 TSV 文件,分隔符为制表符 '\t'
    scientists.to_csv('output/scientists_df.tsv', sep='\t')
    
    # 将整个 DataFrame 保存为 CSV 文件,不包含行索引
    scientists.to_csv('output/scientists_df_noindex.csv', index=False)
    

5.3 Excel文件

  • Pandas 读写 Excel 需要额外安装如下三个包:

    • 注意:下载的位置一定要和PyCharm所使用的Anaconda环境一致,可以使用管理员身份打开Anaconda Prompt然后下载;
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlwt 
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd
    
  • 保存成Excel文件。Series这种数据结构不支持to_excel()方法,想保存成Excel文件,需要把Series转换成DataFrame;

    # 将 Series 转换为 DataFrame
    names_df = names.to_frame()
    # 导入 xlwt 库,用于写入 Excel 文件
    import xlwt
    # 将 DataFrame 保存为 Excel 文件(.xls 格式),engine参数用于指定引擎
    names_df.to_excel('output/scientists_name_df.xls', engine='openpyxl')
    # 将整个 DataFrame 保存为 Excel 文件,指定工作表名称为 'scientists',不包含行索引
    scientists.to_excel('output/scientists_df.xlsx', sheet_name='scientists', index=False, engine='openpyxl')
    
  • 使用pd.read_excel()读取Excel文件

    在这里插入图片描述

5.4 其它数据格式

  • feather文件

    • feather是一种文件格式,用于存储二进制对象
    • feather对象也可以加载到R语言中使用
    • feather格式的主要优点是在Python和R语言之间的读写速度要比CSV文件快
    • feather数据格式通常只用中间数据格式,用于Python和R之间传递数据一般不用做保存最终数据
  • 其他格式

    导出方法 说明
    to_clipboard 把数据保存到系统剪贴板,方便粘贴
    to_dict 把数据转换成 Python 字典
    to_hdf 把数据保存为 HDF 格式
    to_html 把数据转换成 HTML
    to_json 把数据转换成 JSON 字符串
    to_sql 把数据保存到 SQL 数据库

6 小结

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到