数据分析之-pandas

2023-11-16

1.pandas库安装导入

windows下和linux下都可以使用pip安装,安装之前最好把pip升级到最新版

python -m pip  install --upgrade pip	#升级pip 
pip install pandas	#安装pandas
import pandas as pd	#导入并别名为pd

2.常用方法介绍

  • 1.pandas 3种常用数据结构演示
函数 说明
pd.Series() 一维数据结构
pd.DataFrame() 二维数据结构(可以理解为表格结构)
pd.Panel() 三维数据结构
dict={'数学':90,'语文':80,'英语':100}
dicts1=pd.Series([1,2,3,4,5])
dicts2=pd.DataFrame(dict,index=['小明','小刘','小王'])

dicts1
#输出
0    1
1    2
2    3
3    4
4    5
dtype: int64

dicts2
#输出
    数学 语文 英语
------------------
小明 90	 80  100
小刘 90	 80  100
小王 90	 80  100

  • 2.pandas读文件
函数 说明
pd.read_csv(‘date.csv’) 读取.csv的文件
pd.read_excel(‘date.xlsx’) 读取.xlsx文件,需要单独安装此模块
date.columns 输出所有的列,也就是第一行
date.index 输出表的总行数
date.reindex([a,b,c,d,e],method=‘bfill’) reindex修改列值(索引列表),method设置前填充(ffill)或者后填充(bfill)
date.values 打印所有行列对应的数据
date.head(2) 打印数据的头2行
date·.tail(2) 打印数据的后2行
date.loc[] 行和列的引用
date.iloc[] 行和列的引用
date.T 翻转行和列
date.sort_index(axis=0/1,ascending = True/False) 1是横向排序,0是纵向排序,True是升序,False是降序
date.sort_values(by =" ",ascending = True/False) 以行里某个列排序可以按照多列排序,True是升序,False是降序
data=pd.read_csv('data.csv')
data
#输出
    id         key       value
---------------------------------------
0   1251147    品牌      Apple
1   1251147    商品名称  苹果iPad mini 3
2   1251147    商品毛重  0.61kg
3   1251147    商品产地  中国
4   1251147    品牌      Apple
5   1251147    商品名称  苹果iPad mini 3
6   1251147    硬盘     128G
7   1251147    尺寸     7.8英寸-9英寸

data.columns
#输出
Index(['id', 'key', 'value'], dtype='object')

data.index
#输出
RangeIndex(start=0, stop=8, step=1)

data.reindex([0,1,2,3,4,5,6,78],method='ffill')
#输出
#8做了7的后填充,这里没有重新赋值给data所以不覆盖原数据
    id         key       value
-----------------------------------------
0   1251147.0  品牌       Apple
1   1251147.0  商品名称   苹果iPad mini 3
2   1251147.0  商品毛重   0.61kg
3   1251147.0  商品产地   中国
4   1251147    品牌       Apple
5   1251147    商品名称   苹果iPad mini 3
6   1251147.0  硬盘       128G
7   1251147.0  尺寸       7.8英寸-9英寸
8   1251147.0  尺寸       7.8英寸-9英寸




  • 3.pandas过滤/去重/检查是是否有空数据/排除数据中的空格
函数 说明
date.loc[data.duplicated()==True,data.columns] duplicated()==True #找出数据中的重复记录,data.columns找出数据重复的行数据
data.drop_duplicates(inplace=True) 删除原数据,如果不加inplace=True删除覆盖,inplace=Flase不覆盖
data.describe() 数据描述,包括,计数、平均值、标准差、最小值、最大值、3个百位数
data.isnull() 检查数据是否为空
data.fillna() 填充数据,可以配合iloc按列填充
data.loc[:,‘id’].str.strip() 利用str的方法清除空格,配合loc和iloc使用
data.loc[data.duplicated()==True,data.columns]
#输出
#找出重复的数据,这里不显示8条数据是因为上面reindex没做覆盖数据操作,原数据没有第8条
     id    key       value
------------------------------------
4   1251147 品牌      Apple
5   1251147 商品名称  苹果iPad mini 3

data.drop_duplicates(inplace=True)
date
#输出
#去重后的数据
    id      key        value
--------------------------------------
0   1251147 品牌       Apple
1   1251147 商品名称   苹果iPad mini 3
2   1251147 商品毛重   0.61kg
3   1251147 商品产地   中国
6   1251147 硬盘       128G
7   1251147 尺寸       7.8英寸-9英寸

data = data.reindex([0,1,2,3,5,6,7,8])  #添加2条空记录,方便测试isnull
data
#输出
    id           key         value
------------------------------------------
0   1251147.0  品牌        Apple
1   1251147.0  商品名称    苹果iPad mini 3
2   1251147.0  商品毛重    0.61kg
3   1251147.0  商品产地    中国
5   NaN        NaN         NaN
6   1251147.0  硬盘        128G
7   1251147.0  尺寸        7.8英寸-9英寸
8   NaN        NaN         NaN

data.describe()
#输出
#这个函数主要针对全整数型的数据,处理含字符串的没有意义
        id
------------------
count   6.0         #计数
mean    1251147.0   #平均值
std     0.0         #标准差
min     1251147.0   #最小值
25%     1251147.0   #较低的百分位数
50%     1251147.0   #中位数
75%     1251147.0   #较高的百分位数
max     1251147.0   #最大值

data_nan=data.isnull() #将为空的值赋给一个变量
import numpy as np
np.where(data_nan==True)
#输出
#输出的为空值的array数组位置
(array([4, 4, 4, 7, 7, 7], dtype=int64),
 array([0, 1, 2, 0, 1, 2], dtype=int64))

data.fillna(0) #将所有的空值替换为0
#输出
    id          key        value
-----------------------------------------
0   1251147.0  品牌        Apple
1   1251147.0  商品名称    苹果iPad mini 3
2   1251147.0  商品毛重    0.61kg
3   1251147.0  商品产地    中国
5   0.0        0           0
6   1251147.0  硬盘        128G
7   1251147.0  尺寸        7.8英寸-9英寸
8   0.0        0           0

data = data.iloc[:,0:1].fillna(1251147) #单独更换某一列的数据
data
#输出
#更换key列空值为1251147
    id
--------------
0   1251147.0
1   1251147.0
2   1251147.0
3   1251147.0
5   1251147.0
6   1251147.0
7   1251147.0
8   1251147.0
函数 说明
pd.concat([data1,data2,data3]) 按行级合并3个表的数据
pd.merge(data1,data2,left_on=id,right_on=ids) 默认以第一个字段进行合并,加left_on=左表的字段名, right_on=右表的字段表
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据分析之-pandas 的相关文章

  • 数据库系统概论(章节重点)

    单词错误 有些地方说的也不是很严谨 大家稍微参考一下即可 祝大家期末顺利 数据库考试重点 题型 30分客观题 20选择10填空或反过来 覆盖面大 关系代数 70分主观题 简答 4 6个理论部分例如简述数据库设计步骤 编程 20 30分 设计

随机推荐

  • input的onchange事件实际触发条件与解决方法

    input中onchange事件已经属于元老级别了 并且现在同onclick一样使用频率很高 然而onchange的机制实际上有很多童鞋并不清楚 我们通过实例来分析这个事件的特征 触发onchange 首先页面有一个input标签 并且已绑
  • python 多线程 线程池的四种实现方式

    python 线程池的四种实现方式 线程简述 一个程序运行起来后 一定有一个执行代码的东西 这个东西就是线程 一般计算 CPU 密集型任务适合多进程 IO密集型任务适合多线程 一个进程可拥有多个并行的 concurrent 线程 当中每一个
  • 【转】开发基于ASP.NET WebService的图片验证码服务

    原文地址 http www webjx com htmldata 2006 01 21 1137824356 html 最近 工作中接到一项任务 开发一个页面验证码功能 查阅了一些网上的资料 并结合以前的绘图方面的知识 实现了如下的解决方案
  • CodeFun如期而至

    背景 将设计稿转代码是前端工程师日常不断重复的工作 这部分工作复杂度较低但工作占比较高 往往又比较枯燥繁琐 有时候开发迭代周期短 静态页面又多 常常让有些前端开发苦不堪言 那么 有没有一款设计稿自动生成代码的工具 减少前端工程师的工作量 提
  • node.js

    node js 关于报错及解决方案 问题一 问题二 问题三 一 Node js基础 1 认识Node js 2 开发环境搭建 3 模块 包 commonJS 4 Npm Yarn 5 内置模块 6 路由 二 Express 1 特色 2 安
  • hadoop 学习笔记

    基于hadoop的贝叶斯文本分类器实现过程 贝叶斯基础理论 这个东西的项目概览 对这个工程总体的流程可以参考这个文献里面的做法即可 参考文献1 远程原件目录 user coderlau input hadoop文件系统命令行主要是hdfs
  • android 电视安装apk文件夹,智能电视无法识别apk文件怎么办?简单几招教你搞定...

    在双十一购买完智能电视后 安装自己喜欢的软件 或许是在正常不过的事情了 但有时候我们会碰到一些APK无法识别 这个时候还以为会认为自己买的是假货 但实际上 这并不是电视的问题 而今天小编就教大家 一旦碰倒APK无法识别时应该如何解决 帮助你
  • 常用语言单元测试框架入门

    本文主要介绍Python java go C OC常用单元测试框架 用于了解各种语言单测 一 python单元测试Pytest 1 Pytest主要功能 pytest是python的一种单元测试框架 同自带的Unittest测试框架类似 相
  • 2023 最新互联网大厂Java面经分享:25 分类、1000 道 Java 面试真题(50w 字解析)

    作为 Java 程序员 选择学习什么样的技术 什么技术该不该学 去招聘网站上搜一搜 看看岗位要求就十分清楚了 自己具备的技术和能力 直接影响到你工作选择范围和能不能面试成功 如果想进大厂 那就需要在 Java 核心技术栈上面好好准备了 具体
  • 通过增加模型的大小来加速Transformer的训练和推理

    点击上方 AI公园 关注公众号 选择加 星标 或 置顶 作者 Eric Wallace 编译 ronghuaiyang 导读 你没有看错 确实是通过增大模型的大小 大家别忘了 在训练的时候 有个隐含条件 那就是模型需要训练到收敛 模型训练会
  • SQL Server 变量

    变量的种类 在T SQL中 变量按照生存范围分为 局部变量和 全局变量 1 全局变量是由系统定义的 在整个SQL Server实例内都能访问到的变量 以 作为第一个字符 用户只能访问 不可以赋值 2 局部变量由用户定义 生命周期只在一个批处
  • 哈希函数的特征_哈希函数及其特征

    哈希函数的特征 Prerequisite Hashing data structure 先决条件 哈希数据结构 The hash function is the component of hashing that maps the keys
  • 机器学习之SVM支持向量机

    目录 经典SVM 软间隔SVM 核SVM SVM分类器应用于人脸识别 SVM优点 SVM缺点 经典SVM 支持向量机 Support Vector Machine SVM 是一种二分类模型 其基本思想是在特征空间中找到一个最优的超平面 使得
  • UWB系统的定位精度影响因素

    UWB系统的定位精度影响因素 影响UWB定位精度的因素较多 主要包括 多径效应 非视距传播 多址干扰 参考基站数量 参考基站位置和时钟同步误差等因素 1 多径效应 超宽带信号在室内传播过程中受到复杂的室内环境 如墙体 窗体及室内障碍物等 的
  • go的配置文件

    go湖南老乡 2018 2 5 17 55 54 package main import github com kylelemons go gypsy yaml fmt type reply to findnode neighbors st
  • 初学者用Eclipse和IDEA哪个好用一点?

    idea 毫无疑问 它已经强大到各处吊打eclipse了 新人更是推荐idea 它的语法提示十分智能 假如你写了一段很傻的代码 它会提示你使用更优写法 只需要点一下就可以自动变成更优写法了 普通for自动转增强for 自动转lambda语法
  • SpringBoot版本升级 2.4.5-->2.7.9 遇到的问题

    原项目功能部署 SpringCache Swagger 项目Boot版本升级遇到的问题 问题一 无法启动 报错信息为 org springframework context ApplicationContextException Faile
  • 查看Mysql表的引擎

    show create table 表名
  • 三.数 据 链 路 层

    数据链路层是实现设备之间通信的非常重要的一层 数据链路层的作用 数据链路层使用的信道 1 使用点对点信道的数据链路层 1 1 数据链路和帧 链路 link 是一条无源的点到点的物理线路段 中间没有任何其他的交换结点 一条链路只是一条通路的一
  • 数据分析之-pandas

    1 pandas库安装导入 windows下和linux下都可以使用pip安装 安装之前最好把pip升级到最新版 python m pip install upgrade pip 升级pip pip install pandas 安装pan