Pandas学习笔记

2023-11-17

1. Pandas作用:一个提供快速、可扩展和展现数据结构的Python库。目标是成为使用Python处理时间和实际数据分析的模块。

有两种数据结构:Series和DataFrame。

1)Series是一种类似于NumPy数组的对象,由一组数据(各种NumPy数据类型)和与之相关的一组数据标签(索引)组成的。

2)DataFrame是一种表格型结构,含有一组有序的列,每一列可以是不同的数据类型。有行索引、列索引。数据以一个或多个二维块存放。

2. 安装方法:

1)通过conda安装

conda install pandas

2)通过pip安装

python3 -m pip install --upgrade pandas

3. 主要特性:

  • 为浮点数和与浮点数精度丢失提供了简易的处理方法。
  • 大数据(数字很大,不是通常意义的大数据)的处理。
  • 自动而准确地处理数据队列。
  • 功能强大。
  • 能方便地转换不规则数据和差异数据。
  • 智能地处理大数据集的切片、子集。
  • 智能合并和连接数据集。
  • 灵活地调整数据集。
  • 从CSV、Excel和数据库中导入数据。

4. 用法(斜体字代表是参数)

  • 导入库
import numpy as np
import pandas as pd
需要操作文件时
import os
1)生成数据表(DataFrame)
  • 导入文件
df = pd.DataFrame(pd.read_csv('name.csv',header=1))
df = pd.DataFrame(pd.read_excel('name.xlsx'))
  • 创建表
    df = pd.DataFrame(<data>,<columns>)
    data是表中的数据,以key-value形式存储,key是列名,value是数据组成的数组。
  • columns就是列名组成的一个数组。

2)查看数据表信息

  • 维度查看:df.shape
  • 数据基本信息查看:df.info()
  • 每一列数据的格式:df.dtypes
  • 某一列格式:df['A'].dtype
  • 空值:df.isnull()
  • 查看某一列空值:df['A'].isnull()
  • 查看某一列的唯一值:df['A'].unique()
  • 查看数据表的值:df.values
  • 查看列名称:df.columns
  • 查看前10行数据:df.head()
  • 查看后10行数据:df.tail()

3) 数据表清洗

  • 用'a'填充空值:df.fillna(value='a')
  • 大小写转换:df['column1']=df['column1'].str.lower()
  • 更改数据格式:df['column1'].astype('format') 
  • 更改列名称:df.rename(columns={'name1': 'name2'})
  • 删除后出现的重复值:df['column1'].drop_duplicates()
  • 删除先出现的重复值:df['column1'].drop_duplicates(keep='last')
  • 数据替换:df['column1'].replace('a1', 'a2')

4)数据预处理

  • 数据表合并:df_merge=pd.merge(df,df1,how='<inner>,<left>,<right>,<outer>')
  • 设置索引列:df_merge.set_index('index')
  • 按照特定列的值排序:df_merge.sort_values(by=['value'])
  • 按照索引列排序:df_merge.sort_index()
  • 如果column1的值大于多少,column2显示p1,否则p2: df_merge['column2']=np.where(df_inner['column1']>value, 'p1','p2')
  • 对column1字段的值分为不同列,并创建数据表,索引值为df_merge的索引列column2,column3: pd.DataFrame((x.split('-') for x in df_merge['column1']),index=df_merge.index,columns=['column2','column3']))

5)数据提取

  • loc函数按标签值进行提取:df.loc[num]
  • iloc按位置进行提取:df.iloc[num1:num2] / df.iloc[:pos1,:pos2]
  • ix可以同时按标签和位置进行提取:

6)数据筛选

  • 与:df.loc[(df['column1']>value1) & (df['column2'] =='value2'),['column1','column2','column3','column4']]
  • 或:df.loc[(df['column1']>value1) | (df['column2'] =='value2'),['column1','column2','column3','column4']]
  • 非:df.loc[(df['column1'] != value1),['column1','column2','column3','column4']]
  • query:df.query('column1 == ["value1", "value2"]')

7)数据汇总

  • 计数器(groupby): df.groupby('column1').count()
  • 透视表(pivote_table): pd.pivot_table(df,index=["column"]

8)数据统计

  • 数据采样:第一参数为必填,第二、三个选填,二是手动设置采样哪一类,三是采样之后是否放回
  • df.sample(n="amount", attr=set_attr, replace=true/false)
  • 数据表描述性统计:df.describe().round(2).T
  • 计算列标准差:df['column'].std()
  • 计算字段间的协方差(不写参数则是所有字段之间的协方差):df['column1'].cov(df['column2'])
  • 字段相关性分析:df['column1'].corr(df['column2'])
  • 数据表相关性分析:df.corr()

9)数据输出

  • 写入excel:df.to_excel('name1.xlsx', sheet_name='name2')
  • 写入csv:df.to_csv('name.csv')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas学习笔记 的相关文章

随机推荐

  • Apache服务安全加固及Apache优化

    转载来源 https help aliyun com knowledge detail 52981 html 一 账号设置 以专门的用户帐号和用户组运行 Apache 服务 1 根据需要 为 Apache 服务创建用户及用户组 如果没有设置
  • python+selenium自动化测试通过cookie绕过登录验证

    前言 之前记录过通过截图获取验证码的方式实现登录 但目前存在识别不准确的情况 因此有本篇通过cookie绕过登录验证的方法 绕过登录后 可以便于对系统的功能界面进行自动化测试设计 一 关于cookie的一些认知 1 浏览器的缓存有两种机制
  • C++ 中sort排序改变数值相同的数据相对位置的解决办法

    今天给大家介绍个超级好用的知识 写了那么多的排序 但是其实C 里封装有排序函数 而且功能非常强大 sort函数有sort stable sort 和partial sort sort 函数是对给定区间的元素进行排序 但是会改变值相同的元素的
  • Centos7搭建RabbitMQ集群及单机多节点部署

    安装基本环境 yum y install wget vim bash completion lrzsz nmap telnet tree net tools bind utils lsof ntpdate iotop erlang环境 wg
  • 深入理解计算机系统-笔记

    计算机系统漫游 程序 程序的生命周期从一个源程序 源文件 开始 即程序员利用编辑器创建并保存的文本文件 如文件名为hello c的c语言程序 源程序是由0和1组成的位序列 8个位被组织成一组 称为字节 每个字节表示程序中的某个文本字符 这种
  • css布局 - 垂直居中布局的一百种实现方式(更新中...)

    首先将垂直居中的现象和实现方式两大方向细分类如下 接下来逐条累加不同情况下的垂直居中实现 目录 一 父元素高度固定时 单行文本 图片的垂直居中 1 line height行高简单粗暴实现法 line height Npx N 与元素高度相同
  • parted 分区与磁盘扩容(二)

    前 LVM分区管理是对后续扩容磁盘做铺垫的 现在2TB的硬盘都非常常见了 对于超过2TB的硬盘分区 需要使用parted命令进行操作 fdisk只可以操作2TB之内的 本次教程教你们如何轻松实现2T以上和2T以下磁盘的分区及扩容 一 首先要
  • avalon框架中ms-visible和ms-if的区别

    在avalon的官方教程中说 ms visible的作用是使元素在一定条件下隐藏 不显示 ms if 同样隐藏 但它是将元素移出DOM 这个功能直接影响到CSS empty伪类的渲染结果 那么 什么是伪类 它与class id等功能类似 也
  • 利用VTK显示PLY网格模型文件

    define vtkRenderingCore AUTOINIT 2 vtkRenderingOpenGL2 vtkInteractionStyle include
  • 使用Idea打开Maven项目的正确姿势

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在学习网上大神们的源码过程中 经常有一些打包好的项目可以提供给自己参考学习 其中不乏一些maven项目 因为自己使用的开发环境是Idea Gradle 对于Maven虽有耳
  • 模型设计总结(1)

    用单变量线性时间序列预测模型预测股价走势有一定的局限性 因此 为了充分利用时间序列的特性数据序列 深入挖掘数据特征 提高数据质量为了提高股票价格预测的准确性 基于CNN LSTM的股票价格预测方法进行股票次日收盘价预测 卷积神经网络 CNN
  • Pandas 使用ExcelWriter实现覆盖文件操作

    if sheet exists replace 这段代码主要实现的作用是 多次使用同一个文件 创建sheet时 但已存在同样的sheet名 进行覆盖操作 writer pd ExcelWriter result file path engi
  • 【阅读随笔】Modularized Control Synthesis for Complex Signal Temporal Logic Specifications

    又是一篇有关STL任务分解的文章 1 Z Zhang and S Haesaert Modularized Control Synthesis for Complex Signal Temporal Logic Specifications
  • 防御第三天

    1 总结当堂NAT与双机热备原理 形成思维导图 2 完成课堂NAT与双机热备实验 fw1
  • PIO操作Excel,通过文件流判断Excel的版本

    import com fasterxml jackson databind exc InvalidFormatException import org apache poi ss usermodel Workbook import org
  • 送书

    又到了周三了 说实话 本来这期想鸽的 上海这边的疫情太严重了 前几期上海这边中奖的粉丝都没办法收货 只能等解封后再安排了 在这里和大家道个歉 希望大家谅解 最后希望在上海的小伙伴们早日渡过难关 像这种一把青菜50块的日子什么时候才是个头啊
  • 推荐七种开源免费的C/C++网络库

    1 ACE 庞大 复杂 适合大型项目 开源 免费 不依赖第三方库 支持跨平台 2 Asio Asio基于Boost开发的异步IO库 封装了Socket 简化基于socket程序的开发 开源 免费 支持跨平台 3 POCO POCO C Li
  • java向上转型思考

    https www cnblogs com bangaj p 5813738 html 下面是对向上转型思考 作用 简化开发 体现类的多态性 保证代码简洁 实现前提 因为java是动态绑定特点 在编译时会编译器会自动找寻到 是子类方法还是父
  • COUNT(1) 和 COUNT(*) COUNT(字段) 傻傻分不清

    写 SQL 的时候突然想到一个问题 COUNT 1 和 COUNT 有啥区别 COUNT 字段 呢 在数据库的增删改查操作中 使用最频繁的就是查询操作 而在所有查询操作中 统计数量操作更是经常被用到 关于数据库中行数统计 无论是MySQL还
  • Pandas学习笔记

    1 Pandas作用 一个提供快速 可扩展和展现数据结构的Python库 目标是成为使用Python处理时间和实际数据分析的模块 有两种数据结构 Series和DataFrame 1 Series是一种类似于NumPy数组的对象 由一组数据