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

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根据行索引的位置取值
    TSeries 的转置矩阵
    shape数据的维数
    sizeSeries 中元素的数量
    valuesSeries的值

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绘制直方图
    isinSeries 中是否包含某些值
    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 小结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失散13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值