当前位置: 首页 > 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…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...