normalize函数_Pandas 数据处理(一) —— 几个简单函数掌握!

a8b17432ec3bfab7d4e780d6dfad752c.png

对于 Pandas, 接触过 Python 数据处理的小伙伴们都应该挺熟悉的,做数据处理不可或缺的一个程序包,最大的特点高效,本篇文章将通过案例介绍一下 Pandas 的一些基础使用!

1,读入数据

大部分数据都可以用 read_csv() 函数读入,函数中有个 sep 参数,表示数据的分隔符,默认为 “,” (因为大部分 csv 文件数据之间就是以 ,隔开的)

users = pd.read_csv("https://raw.githubusercontent.com/justmarkham/DAT8/master/data/u.user",sep = '|')# Read data;
users

原始数据:

197f650b37163ab466083e0aea9f3c9d.png

读取之后的数据:

5e68de1f8151ecd982ee43adc2b870b4.png

除了 read_csv 之外,还有一个常用的 read_table函数也可进行读取操作,用法与 read_csv 相似

2,改变索引值,只展示前几行数据

set_index() 函数用来改变索引值,注意需要加一个参数 replace = True 表示替代; 利用 head(n) 函数表示只展示前 n 行数据

users.set_index('user_id',inplace = True)
users.head(25)

f97711ba9d216e303fa5645f1a226a9e.png

tail(n) 只展示后几行数据;

3,查看数据的行和列的基本信息

1,shape 返回 数据的行数和列数,以 tuple 形式返回;

users.shape# (943, 4)

2,columns 返回数据列名;

users.columns# Index(['age', 'gender', 'occupation', 'zip_code'], dtype='object')

3,index 返回行名;

users.indexInt64Index([  1,   2,   3,   4,   5,   6,   7,   8,   9,  10,...934, 935, 936, 937, 938, 939, 940, 941, 942, 943],dtype='int64', name='user_id', length=943)

4,dtypes 返回各列的数据类型;

users.dtypes# age            int64
gender        object
occupation    object
zip_code      object
dtype: object

4,只选取某列或多列数据

Pandas 提供多种方式可供选择,注:users 表示 Pandas 可处理的DataFrame 格式;

1,users.列名;

users.occupation

2,users[['列名']];

users[['occupation']]

3,users.loc[:,['列名']];

users.loc[:,['occupation']]

3806cc7eb116e5bb57e0c291605682e5.png

同时选取多列数据时

1,users[['列名1','列名2']];

users[['occupation','age']]

2,users.loc[:,['列名1','列名2']];

users.loc[:,['occupation','age']]

dc204fb3e557c08a356c3acb15589e7e.png

5,对列中数据做去重统计

1,列名.nunique() 查看某一列数据有多少个不重复样本;

users.occupation.nunique()# 21

也可以通过这种方式实现

列名.value_counts().count()

users.occupation.value_counts().count()# 21

如果想在1 的基础之上,查看每一个不重复样本在数据列表冲出现了几次,可用下面语句

users.列名.value_counts()

users.occupation.value_counts().head()# student          196
other            105
educator          95
administrator     79
engineer          67
Name: occupation, dtype: int64

6,对数据列表中的数字列做个简单统计

users.describe() 即可实现,默认统计的是 numeric columns(列中数据都是以数值进行展示的)

users.describe()

f853e374e5c6ed9c460bd688acb9f09d.png

当然也可以统计全部列,加一个参数 include = 'all';

users.describe(include = 'all')

389435122af842639aeca266e1603ba6.png

users.列名.describe() 也可以对指定列进行统计:

users.occupation.describe()#count         943
unique         21
top       student
freq          196
Name: occupation, dtype: object

7,对数据做组聚类

groupby 函数对某一列做聚类操作,返回的是 GroupBy 对象;与 5 中方法相似,区别是 groupby 是以聚类后的列为参照,查看其他列的数据统计情况

c =users.groupby("occupation")
c# <pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000017673002788>

GroupBy.head(n) 查看前 n 行数据

c.head(5)

GroupBy.cout() 对每个样本对应其他列进行数据统计

c.count()

GroupBy.size() 统计列中每个样本出现次数

c.size()

还有其它许可操作的函数,

b1e822e90bda455850bf93488e2b0be3.png

详细的可去官网上查询:https://pandas.pydata.org/docs/reference/groupby.html

8,对数据按照某一列进行排序

用到 data.sort_values() 函数,默认从小到大,可以设置 ascending = False 设置为从大到小;

users.sort_values(["age"],ascending = False)

也可以参考多个列进行排序:

users.sort_values(["age","zip_code"],ascending = False)

c5a3c0b5bda6c15dab778b33d84c6b91.png

9,创建新的列

加入新的列比较简单,创建一个 Series (行数需与原列表数据行数保持一致),赋值到源数据即可

data['列名'] = 新创建的 series;下面我利用对 age 中数据进行均一化,把数据存放在新的列 age_normalize 中

1dc3de31c4e307444bb889fd8f258989.png

10,删除指定列

用 drop() 函数可删除源数据中的指定列

users.drop(['age'],axis = 1)

这里的 axis 代表指定要删除的是行还是列,默认为0,0代表的是行,1代表的是列;也可以直接用下面命令:

users.drop(columns =['age'])

d1c7e2ddc64304a924d02da3f115e7df.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java Collections.emptyList() 方法的使用及注意事项

Java Collections.emptyList方法的使用及注意事项 一、emptyList() 作用&#xff1a;返回一个空的List&#xff08;使用前提是不会再对返回的list进行增加和删除操作&#xff09;&#xff1b;好处&#xff1a; 1. new ArrayList()创建时有初始大小&#xff0c;占用内存&#…

Java集合工具类的一些坑,Arrays.asList()、Collection.toArray()...

Arrays.asList() 使用指南 最近使用Arrays.asList()遇到了一些坑&#xff0c;然后在网上看到这篇文章&#xff1a;Java Array to List Examples 感觉挺不错的&#xff0c;但是还不是特别全面。所以&#xff0c;自己对于这块小知识点进行了简单的总结。 简介 Arrays.asList()…

什么是 NIO? NIO 和 BIO、AIO 之间的区别是什么?NIO主要用来解决什么问题?

1 BIO&#xff0c;NIO&#xff0c;AIO都有什么区别&#xff0c;NIO的原理是什么&#xff1f; BIO BIO&#xff1a;传统的网络通讯模型&#xff0c;就是BIO&#xff0c;同步阻塞IO&#xff0c; 其实就是服务端创建一个ServerSocket&#xff0c; 然后就是客户端用一个Socket去连…

关于页面配色

一、互补色 当两个颜色恰好在色环的两端时&#xff0c;这两个颜色叫做补色。补色搭配能形成强列的对比效果 在线配色工具地址 文字背景色和文字颜色互为补色&#xff0c;文字会很难看清&#xff0c;那么就只使用一种颜色作为主要颜色&#xff0c;其补色用来装点页面 比如&…

一次性说清楚秒验(本机号码一键登录)基本原理、优势、场景、交互过程和常见的问题

一、 关于秒验&#xff08;一键登录&#xff09;基本原理 秒验&#xff08;一键登录&#xff09;产品整合了三大运营商特有的数据网关认证能力&#xff0c;升级短信验证码体验&#xff0c;应用于用户注册、登陆、支付、安全校验等场景&#xff0c;可实现用户无感知校验&#x…

三大运营商实现本机号码一键登录原理与应用

很多APP的目前都支持“本机号码一键登录”功能。本机号码一键登录是基于运营商独有网关认证能力推出的账号认证产品。用户只需一键授权&#xff0c;即可实现以本机号码注册/登录&#xff0c;相比先前的短信验证码流程体验更优。 目前市面上有很多厂商提供三网验证的服务&#…

部署到gcp_剖析大数据公司为什么选择 GCP?

文章来源&#xff1a;加米谷大数据假如L 是一家大数据公司。下面我们的文章将围绕L展开分析。很多公司拥有大数据。每天早餐之前&#xff0c;健壮的日志框架就已经生成了 PB 级别的日志&#xff0c;并以防万一将这些数据长期保存在了亚马逊的 S3 上。还有一些公司会使用他们自己…

Redis缓存那点破事 , 绝杀面试官 25 问

转载&#xff1a;https://blog.csdn.net/itomge/article/details/122118060 精彩文章汇总 GitHub https://github.com/aalansehaiyang/technology-talk &#xff0c;Star 12K &#xff0c;汇总java生态圈常用技术框架、开源中间件&#xff0c;系统架构、数据库、大公司架构案例…

Mysql的select in会自动过滤重复的数据

Mysql的select in会自动过滤重复的数据 默认使用 SELECT 语句&#xff1b; 当加上in范围后&#xff0c;结果如下图&#xff1a; in范围内的数据&#xff0c;如果有重复的&#xff0c;只会选择第一个数据。 所以如果不是直接使用SQL语句来查询&#xff0c;而是在代码中来查询…

java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key c

错误原图&#xff1a; 错误分析&#xff1a;外键约束失败导致插入数据有误 解决问题&#xff1a;检查被关联的外键字段值&#xff0c;在原表中是否有对应的值&#xff0c;添加时外键的值在原表&#xff08;外键关联的表&#xff09;中一定要有该值&#xff0c;没有的值添加报错…

MySql 清空、删除、截断表时1701错误

项目已经进行一段时间&#xff0c;整体的开发工作已经完成。接下来要进入综合测试阶段&#xff0c;所以想要将数据清理一下&#xff0c;然后报了1701错误&#xff0c;由错误提示得知是外键约束的问题 解决办法&#xff1a;关闭外键约束->清空表、截断表->启动外键约束。…

编辑流程图_流程图不会绘制?一分钟手把手教你学会,超简单

我们每天的日常工作非常繁忙&#xff0c;经常被日常的事务性工作淹没&#xff0c;而忽略掉我们工作的流程是否正确&#xff0c;我们的方向是否正确。如果流程、方向错了&#xff0c;再努力都是没有用的。要确保努力与付出是有价值的&#xff0c;就必须确保前进方向是正确的&…

MVVM 模型

MVVM 模型 在实际代码中 <!--MVVM 模型&#xff1a;1. M: 模型(Model) : data 中的数据2. V: 视图(View) : 模板代码3. VM: 视图模型(ViewModel) : Vue 实例观察发现&#xff1a;1. data 中所有的属性&#xff0c;最后都出现在了 vm 身上2. vm 身上所有的属性 以及 Vue 原…

NAVICAT MYSQL 建表字段 默认值、EMPTY STRING、空白、NULL 的区别

Navicat mysql 建表字段 默认值、empty string、空白、NULL 的区别 总结在最后&#xff0c;没啥干货 简单测试了4种类型 bigint tinyint varchar char 单引号 ‘’ 双引号 “” 自定义的默认值 如&#xff1a; 未知的姓名 新建一张用户表 CREATE TABLE user (id bigint(20…

如何将vue项目打包为.apk文件

说明&#xff1a;使用Vue.js开发完毕的app一般不作处理的话&#xff0c;就只能在浏览器上做为Webapp使用。如果需要将它安装到安卓手机上就需要打包为.apk文件了。 前提&#xff1a;安装HBuilderX 具体步骤&#xff1a; 1.在vue项目中找到config/build.js 2.找到build下的a…

linux 快照

一、快照管理器 二、选择保存的快照 — 出错了方便回去

工作琐事太多怎么办_东莞夫妻感情不合怎么办 东莞专业离婚咨询

东莞夫妻感情不合怎么办 东莞专业离婚咨询工作中的琐事影响感情交流&#xff0c;当然什么事也没有但我却打他&#xff0c;还有一些行刑人在旁边站着。行为泼辣得不到观众的好感。对当时的一些知识和政界发生。只记得内容是希望他好自为之&#xff0c;生活中她是位的。苏菲宗派里…

23种经典设计模式都有哪些,如何分类?Java设计模式相关面试

23种经典设计模式都有哪些&#xff0c;如何分类&#xff1f; 23种经典设计模式都有哪些&#xff0c;如何分类&#xff1f; java常用的设计模式&#xff1f;说明工厂模式 Java 中的23 种设计模式&#xff1a; Factory&#xff08;工厂模式&#xff09;&#xff0c; Builder&am…

五大常用算法学习笔记

一、分治算法&#xff1a;快速排序、归并排序、大整数乘法、二分查找、递归&#xff08;汉诺塔&#xff09; 基本概念&#xff1a;把一个复杂的问题分成若干个相同或相似的子问题&#xff0c;再把子问题分成更小的子问题… &#xff0c; 知道最后子问题可以简单的直接求解&…

8客户端安装后无法启动_新君越涉水后车辆无法启动

车型&#xff1a;2010君越故障现象&#xff1a;涉水后车辆无法启动询问客户&#xff1a;涉水的水深10cm左右。 外观检查&#xff1a;TCM连接器进水、其它没发现进水迹象使用压缩空气吹干TCM连接器的进水&#xff0c;并处理机舱的接地点。GDS检测&#xff1a;U0074,控制模块通信…