当前位置: 首页 > news >正文

python的pandas数据分析处理基础学习

pandas学习

一、 pandas基础

1. 什么是pandas?

一个开源的python类库:用于数据分析、数据处理、数据可视化

  • 高性能
  • 容易使用的数据结构
  • 容易使用的数据分析工具

很方便和其他类库一起使用:

  • numpy:用于数学计算

  • scikit-learn:用于机器学习

2. pandas 的安装

方法一:

pip3 install pandas

方法二:

下载使用Python类库集成安装包:anaconda      link: https://www.anaconda.com
当今最流行的python数据分析发行版
已经安装了数据分析需要的几乎所有的类库0
3. pandas读取数据

pandas 需要先读取表格类型的数据,然后进行分析

数据类型说明pandas读取方式
csv ,tsv,txt用逗号,tab分割的纯文本文件pd.read_csv
excel微软xls或者xlsxpd.read_excel
mysql关系型数据库表pd.read_sql
  • 读取csv文件

    import os
    import pandas as pdfpath = "E:\MyProject\DataAnalysis\my_pandas\Datas\cpu_temp.csv"
    # 读取csv文件的所有数据
    datas = pd.read_csv(fpath)
    # 查看前几行的数据  默认前5行
    da = datas.head()
    print(da)
    # 查看数据的形状,返回行和列
    ds = datas.shape
    print(ds)
    # 查看列名列表
    df = datas.columns
    print(df)
    # 查看索引列
    dg = datas.index
    print(dg)
    # 查看每列的数据类型
    dh = datas.dtypes
    print(dh)
    
4. Pandas数据结构
import pandas as pd
import numpy as np
  • DataFrame:二维数据、整个表格、多行多列

    创建DataFrame的方法

    • 根据多个字典序列创建dataframe

      data = {'age':[23,45,32,56,32,54,22],'id': [1,2,3,4,5,6,7]'year': [1991,1992,1993,1994,1995,1996,1997]}
      d1 = pandas.DataFrame(data)
      
    • df.columns 和df.index

  • Series: 一维数据、一行或一列

    创建Series的三种方法:

    • 仅使用数据列表即可产生最简单的Series

      sl = pd.Series([1,'a',5.2,7])
      
    • 创建一个具有标签索引的Series

      s2 = pd.Series([1,'a',5.2,7], index=['d','e','f','g'])
      
    • 使用python字典创建Series

      sdata = {'a':3500,'b'=4566, 'c'=12556,'d'=12435}
      s3 = pd.Series(sdata)
      
5. Pandas 数据查询

Pandas查询数据的几种方法

  • df.loc 根据行,列的标签值查询

    • 使用单个标签值(label)查询数据

    • 使用值列表批量查询

    • 使用数值区间进行范围查询

    • 使用条件表达式查询

      df.loc[df["age"]<30,:]
      
      df.loc[(df['a']<=30) & (df['d']>=15) & (df[f]=='ssa'& (df['s']==1), :]
      
    • 调用函数查询

      df.loc[lambda df : (df['a']<30)& (df['d']>=15),:]
      
  • df.iloc 根据行,列的数字位置查询

  • df.where

  • df.query

注意:.loc既能查询,又能覆盖写入,强烈推荐

6. Pandas新增数据列
  • 直接赋值 修改列数值

    将第b列的含有@符合的值替换掉
    df.loc[:,"b"] = df["b"].str.replace("@","").astype('int32')

    计算差值新增一列插值

    df[:,"chazhi"] = df["a"] - df["b"]
    
  • df.apply

    index则axis=0  columns则axis=1def get_temp_type(x):if x["CPU0_Temp"]>60:return '高温'elif x["CPU0_Temp"] < 50:return '低温'return '常温'
    df.loc[:,'temp_type'] = df.apply(get_temp_type,axis=1)
    df['temp_type'].value_counts()
    
  • df.assign

    可以是lambda函数也可以是自定义函数
    df.assign(cpu0_huashi = lambda x :x['CPU0_Temp']*9/5 + 32,cpu1_huashi = lambda x: x['CPU1_Temp']*9/5 + 32)
    
  • 按条件选择分组分别赋值

    先创建空列(这里第一张创建新列的方式
    df["cup_type"] = ''
    df.loc[df['CPU1_Temp']- df['CPU0_Temp']>10,"cpu_type"] = "温差大"
    df.loc[df['CPU1_Temp']- df['CPU0_Temp']<=10,"cpu_type"] = "温差正常"
    
7. Pandas的数据统计函数
  • 汇总类统计

    提取所有数字列统计结果
    df.describe()
    
  • 唯一去重和按值计算

    • 唯一性去重

      一般不用于数值列,而是枚举,分类列

      df['b'].unique()
      
    • 按值计算

      df[‘a’].value_counts()

  • 相关系数和协方差

    用途(超级厉害):

    1. 两只股票,是不是同涨同跌?程度多大?正相关还是负相关?

    2. 产品销量的波动,跟哪些因素正相关、负相关,程度多大?

      对于两个变量X、Y

    • 协方差:衡量同向反向程度,如果协方差为正,说明X、Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X、Y反向变化,协方差越小说明反向程度越高

      df.cov()
      
    • 相关系数:衡量相似程度,当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,当相关系数为-1时,说明两个变量变化的反向相似度最大

      df.corr()df['a'].corr(df['b']) 查看a和b的相关系数
      df['a'].corr(df['b']-df['c'])
      
8. Pandas缺失值处理

pandas使用函数处理缺失值

  • isnull和notnull:检测是否为空值,可用于df和series

  • dropna:丢弃、删除缺失值 【下面是参数介绍】

    • axis:删除还是列,{0 or ‘index’,1 or ‘columns’},default 0
    • how: 如果等于any则任何值为空都删除,如果等于all则所有值都为空才删除
    • inplace:如果为True则修改当前df,否则返回新的df
  • fillna:填充空值 【下面是参数介绍】

    • value:用于填充的值,可以是单个值,或者字典(key为列名,value是值)
    • method:等于ffill使用前一个不为空的值填充for word fill;等于bfill使用后一个不为空的值填充back word fill
    • axis:按行还是列填充,{0 or ‘index’,1 or ‘columns’}
    • inplace:如果为True则修改当前df,否则返回新的df

相关文章:

python的pandas数据分析处理基础学习

pandas学习 一、 pandas基础 1. 什么是pandas&#xff1f; 一个开源的python类库&#xff1a;用于数据分析、数据处理、数据可视化 高性能容易使用的数据结构容易使用的数据分析工具 很方便和其他类库一起使用&#xff1a; numpy&#xff1a;用于数学计算 scikit-learn&a…...

【Qt-容器类】

Qt编程指南 ■ 顺序容器类■ QList■ QVector■ QLinkedList■ QStack■ QQueue ■ 关联容器类■ QSet■ QMap■ QMultiMap■ QHash■ QMultiHash ■ 顺序容器类 ■ QList QList 比较常用的容器类&#xff0c;以数组列表的形式实现&#xff0c;在前、后添加数据非常快。以下为…...

2023-12-27 语音转文字的whisper应用部署

点击 <C 语言编程核心突破> 快速C语言入门 语音转文字的whisper应用部署 前言一、部署whisper二、部署whisper.cpp总结 前言 要解决问题: 需要一款开源的语音转文字应用, 用于视频自动转换字幕. 想到的思路: openai的whisper以及根据这个模型开发的whisper.cppC应用. …...

MAVLINK生成自定义消息

git clone https://github.com/mavlink/mavlink.gitcd mavlinkgit submodule update --init --recursivepython -m mavgenerate出现以下界面 XML填写自定义xml路径&#xff0c;内容可以参考mavlink/message_definitions/v1.0 Out为输出路径 <?xml version"1.0"…...

【MediaPlayerSource】播放器源内部的音视频sender的创建和使用

来看下声网播放中的sender相关组件设计:MediaPlayerSourceDummy 是一个MediaPlayerSourceImpl ,输入音视频帧到 播放器。player_worker_ 线程触发所有操作,由外部传递,与其他组件公用 MediaPlayerSourceDummy(base::IAgoraService* agora_service, utils::worker_type play…...

【机器学习】西瓜书第6章支持向量机课后习题6.1参考答案

【机器学习】西瓜书学习心得及课后习题参考答案—第6章支持向量机 1.试证明样本空间中任意点x到超平面(w,b)的距离为式(6.2)。 首先&#xff0c;直观解释二维空间内点到直线的距离&#xff1a; 由平面向量的有关知识&#xff0c;可得&#xff1a; 超平面的法向量为 w w w&am…...

【OpenAI Q* 超越人类的自主系统】DQN :Q-Learning + 深度神经网络

深度 Q 网络&#xff1a;用深度神经网络&#xff0c;来近似Q函数 强化学习介绍离散场景&#xff0c;使用行为价值方法连续场景&#xff0c;使用概率分布方法实时反馈连续场景&#xff1a;使用概率分布 行为价值方法 DQN&#xff08;深度 Q 网络&#xff09; 深度神经网络 Q-L…...

Vue axios Post请求 403 解决之道

前言&#xff1a; 刚开始请求的时候报 CORS 错误&#xff0c;通过前端项目配置后算是解决了&#xff0c;然后&#xff0c;又开始了新的报错 403 ERR_BAD_REQUEST。但是 GET 请求是正常的。 后端的 Controller 接口代码如下&#xff1a; PostMapping(value "/login2&qu…...

【Leetcode】重排链表、旋转链表、反转链表||

目录 &#x1f4a1;重排链表 题目描述 方法一&#xff1a; 方法二&#xff1a; &#x1f4a1;旋转链表 题目描述 方法&#xff1a; &#x1f4a1;反转链表|| 题目描述 方法&#xff1a; &#x1f4a1;总结 &#x1f4a1;重排链表 题目描述 给定一个单链表 L 的头节…...

RabbitMQ 报错:Failed to declare queue(s):[QD, QA, QB]

实在没想到会犯这种低级错误。 回顾整理一下吧&#xff1a; 原因&#xff1a;SpringBoot主配置类默认只会扫描自己所在的包及其子包下面的组件。其他位置的配置不会被扫描。 如果非要使用其他位置&#xff0c;就需要在启动类上面指定新的扫描位置。注意新的扫描位置会覆盖默…...

Neo4j 5建库

Neo4j 只有企业版可以运行多个库&#xff0c;社区版无法创建多个库&#xff0c;一个实例只能运行一个库&#xff1b; 如果业务需要使用多个库怎么办呢&#xff1f; 就是在一个机器上部署多个实例&#xff0c;每个实例单独一个库名 这个库的名字我们可以自己定义&#xff1b; …...

鲁棒最小二乘法 拟合圆

​​​​​​​​​​​​​​圆拟合算法_基于huber加权的拟合圆算法-CSDN博客 首次拟合圆得到采用的上述blog中的 Ksa Fit 方法。 该方法存在干扰点时&#xff0c;拟合得到的结果会被干扰。 首次拟合圆的方法 因此需要针对外点增加权重因子&#xff0c;经过多次迭代后&…...

LeetCode——动态规划

动态规划 一、一维数组&#xff1a;斐波那契数列 爬楼梯70简单 dp定义&#xff1a; dp[i]表示爬到第i阶有多少种不同的方式 状态转移方程&#xff1a; dp[i] dp[i-1] dp[i-1] &#xff08;每次可以爬1或2个台阶&#xff09; 边界条件&#xff1a; dp[0] 1; dp[1] 1;&#…...

opencv和gdal的读写图片波段顺序问题

最近处理遥感影像总是不时听到 图片的波段错了&#xff0c;一开始不明就里&#xff0c;都是图片怎么就判断错了。 1、图像RGB波段顺序判断 后面和大家交流&#xff0c;基本上知道了一个判断标准。 一般来说&#xff0c;进入人眼的自然画面在计算机视觉中一般是rgb波段顺序表示…...

PyQt 打包成exe文件

参考链接 Python程序打包成.exe(史上最全面讲解)-CSDN博客 手把手教你将pyqt程序打包成exe(1)_pyqt exe-CSDN博客 PyInstaller 将DLL文件打包进exe_怎么把dll文件加到exe里-CSDN博客 自己的问题 按照教程走的话&#xff0c;会出现找不到“mmdeploy_ort_net.dll”文件的报错…...

【Web2D/3D】SVG(第二篇)

1. 前言 SVG&#xff08;Scalable Vector Graphics&#xff0c;可缩放矢量图形&#xff09;是一种使用XML描述2D图形的语言&#xff0c;由于SVG是基于XML&#xff08;HTML也是基于XML的&#xff09;&#xff0c;因为SVG DOM中每个元素都是可以操作的&#xff0c;包含修改元素属…...

leetcode18. 四数之和

题目描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; …...

(十八)Flask之threaing.local()对象

0、引子&#xff1a; 如下是一段很基础的多线程代码&#xff1a; from threading import Threaddemo 0def task(arg):global demodemo argprint(demo)for i in range(10):t Thread(targettask, args(i, ))t. start()当程序运行时&#xff0c;可能会看到输出的顺序是混乱的…...

ffmpeg 硬件解码零拷贝unity 播放

ffmpeg硬件解码问题 ffmpeg 在硬件解码&#xff0c;一般来说&#xff0c;我们解码使用cuda方式&#xff0c;当然&#xff0c;最好的方式是不要确定一定是cuda&#xff0c;客户的显卡不一定有cuda&#xff0c;windows 下&#xff0c;和linux 下要做一些适配工作&#xff0c;最麻…...

高德地图_公共交通路径规划API,获取两地点之间的驾车里程和时间

import pandas as pd import requests import jsondef get_dis_tm(origin, destination,city,cityd):url https://restapi.amap.com/v3/direction/transit/integrated?key xxx #这里就是需要去高德开放平台去申请key,请在xxxx位置填写,web服务APIlink {}origin{}&desti…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...