python数据处理模块pandas_13. Python|模块总结:Pandas(数据处理)|【老W笔记】...

一、基本操作0. 导入模块import pandas as pd1. 新建DataFrame下面的例子中,我们新建一个有3条记录2列属性的表格。3 条记录分别是Tom,Bob,Alice的个人信息,2列属性分别是name和age。

新建属性列的语法形如df['XX']= List,属性名为XX,属性值是List。例如,新建属性列age的语法df['age']=[20,28,22],属性名为age,三条记录的数值为[20,28,22]。df = pd.DataFrame()

df['name']=['Tom','Bob','Alice']

df['age']=[20,28,22]

wAAACwAAAAAAQABAEACAkQBADs=2. 查看DataFrame查看前n行。当DataFrame有海量记录的时候,我们可以只查看前n行来了解属性结构,以及数据的大致内容。

查看前n行语法df.head(n)。例如,df.head(1)查看第1行记录。df.head(1)

wAAACwAAAAAAQABAEACAkQBADs=

Screen Shot 2020-05-11 at 4.18.18 PM.png查看总行数,总列数。语法是df.shape,它返回(#rows,#cols)的元组。

也可以单独取出总行数df.shape[0]和总列数df.shape[1]。df.shape #(3, 2)DataFrame转Array。如果对数组操作更熟悉,那么可以绕开DataFrame操作的语法,用语法df.values把DataFrame直接转成2D数组来处理。df.values

wAAACwAAAAAAQABAEACAkQBADs=

Screen Shot 2020-05-11 at 4.25.48 PM.png3. 读写文件to_csv函数把DataFrame存到CSV文件中。

pd.read_csv函数把CSV文件内容读取到DataFrame中。df.to_csv('test2.csv')

df = pd.read_csv('test.csv')

三、DataFrame增删改查1. 添加行/列下面例子中,新增了一个height列,新增了一条Lily的记录。

新增一列的语法形如df['XX']=List,属性名XX,属性值为List。例如,语法df['height']=[1.75,1.80,1.68],新增列名height,数值分别为[1.75,1.80,1.68]。

新增一行用append函数,参数是Dict类型的一条记录,key是属性列名,value是属性值。df['height']=[1.75,1.80,1.68]

df = df.append({'name':'Lily','age':24,'height':1.65}, ignore_index=True)

wAAACwAAAAAAQABAEACAkQBADs= 2. 删除行/列下面的例子中,我们删除了height列,删除了一条Tom的记录。

删除行和删除列使用的函数是一样的,都使用drop函数。

删除行语法drop(0, inplace=True),参数是记录的index 0。

删除列的语法drop('height', axis=1, inplace=True),参数是属性名height。df.drop(0, inplace=True)

df.drop('height', axis=1, inplace=True)

wAAACwAAAAAAQABAEACAkQBADs=3. 更新单个Cell/多个Cell更新单个cell的语法形如df.at[index,'XX']=value 。

例如:语法df.at[0,'name']='David'表示把0行name列的值修改成David。df = pd.DataFrame()

df['name']=['Tom','Bob','Alice']

df['age']=[20,28,22]

df.at[0,'name']='David'

wAAACwAAAAAAQABAEACAkQBADs=更新多个cell的语法形如df.loc[df['XX']=condition, 'XX']=value。它的操作分两步,第一步先用df.loc函数找到符合条件df['XX']=condition的记录,第二步修改这些记录的属性值。

例如,语法df.loc[df['name'].str.contains('o'),'name']表示找到name属性包含字符'o'的记录,然后把这些记录的name值换成Testing。

例子中,Tom和Bob由于包含字符'o',因此都被替换成了Testing。df = pd.DataFrame()

df['name']=['Tom','Bob','Alice']

df['age']=[20,28,22]

df.loc[df['name'].str.contains('o'),'name'] = 'Testing' #多个cell

wAAACwAAAAAAQABAEACAkQBADs=4. 查询记录查询记录的语法形如df[df['XX'] = condition]。

例如,语法df[df['age']<25]表示查询所有age列的值小于25的记录。

例子中,Tom年龄20<25,Alice年龄22<25,因而被查询到。df = pd.DataFrame()

df['name']=['Tom','Bob','Alice']

df['age']=[20,28,22]

df[df['age']<25]

wAAACwAAAAAAQABAEACAkQBADs=

四、高级操作1. Group操作下面的例子是一张成绩单,内容是三个人Tom,Bob,Alice的成绩,每人两科成绩:English成绩,Chinese成绩,因此共3*2=6条记录。

计算每个人的平均成绩。分两步完成这个任务:

1). 把记录按照name分组,语法是df.groupby('name')。

2). 组内计算成绩平均值,语法是df.groupby('name').mean()。

例子中,Tom的英文/语文成绩分别是70,100,因此均值是85。其它人计算同理。df = pd.DataFrame()

df['name']=['Tom','Tom','Bob','Bob','Alice','Alice']

df['course']=['English','Chinese','Chinese','English','English','Chinese']

df['score']=[70,100,99,95,85,90]

df.groupby('name').mean()

wAAACwAAAAAAQABAEACAkQBADs=

https://www.jianshu.com/p/e53c5b54d3e1

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

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

相关文章

visual studio 设计器不显示_与城共生:南京朝天宫“参与性”城市设计

本课题致力于探索和理解目前中国城市迅速发展的过程中&#xff0c;老旧社区如何与城市共生共进。通过对南京老旧社区的充分调查和研究&#xff0c;选取了朝天宫古玩市场附近的街巷民居和鼓楼工人新村作为设计地块。社会结构的变迁以及城市空间形态的变化都对老旧社区正在进行冲…

mysql error code 1093_MySQL更新时ErrorCode:1093和ErrorCode:1175的解决办法

Error Code: 1093. You canError Code: 1093. You cant specify target table ws_product for update in FROM clause这个是我们在使用update或者delete语句时&#xff0c;在where条件里面加入的子查询导致的。例如如下的update语句&#xff1a;update table set type static …

安装mysql8.019命令符_MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干目录下载完成后解压解压完是这个样子配置初始化的my.ini文件的文件解压后的目录并没有的my.ini文件&#xff0c;没关系可以自行创建在安装根目录下添加的my.ini(新建文本文件&#xff0c;将文件类型改为的.ini)&#xff0c;写入基本配置&#xff1a;[mysqld]# …

入Java_初入Java的方法

Java的方法类似于其他语言如C中的函数&#xff0c;比如我们第一个Java程序 输出Hello,world&#xff01;中用到一个方法System.out.printfln()&#xff1b;这里的printfln()就是一个方法&#xff0c;System是系统类&#xff0c;out是对象。1.什么是方法&#xff1f;方法是语句…

java method_JAVA Method的解析

java.lang.reflect.MethodMethodpublic final class Method extends Executable数据的层级结构Paste_Image.pngMethod中的方法boolean [equals].将此方法与指定的对象进行比较T extends [Annotation]T [getAnnotation]如果存在注释&#xff0c;则返回指定类型的注释否则返回为n…

java中this_多学习才能多赚钱之:java中this什么用

java中this什么用1、this调用当前属性&#xff1a;其主要作用是当需要给类中的数据进行初始化时&#xff0c;可以通过this来进行赋值&#xff0c;而不用随便定义一个变量来进行赋值&#xff0c;更有利于代码的阅读与理解(推荐教程&#xff1a;java教程)class Book{//定义书的类…

java api 英文_教你查阅Java API 英文文档(JDK 11)

然后找到“Specifications”并点击 API Documentation比如我们在别人的源码里看到了方法[也叫函数]&#xff1a; Scanner input new Scanner(System.in);所以搜索一下右上角 Scanner&#xff0c;对比我们看到的源码里import&#xff0c;发现是java.util包里的&#xff0c;所以…

jedis使用_Redis --Java客户端 Jedis

Redis --Java客户端 Jedis 博客说明 文章所涉及的资料来自互联网整理和个人总结&#xff0c;意在于个人学习和经验汇总&#xff0c;如有什么地方侵权&#xff0c;请联系本人删除&#xff0c;谢谢&#xff01; 简介 Jedis: 一款java操作redis数据库的工具. 菜鸟教程文档地址 使用…

找出最具竞争力的子序列_力扣300——最长上升子序列

这道题主要涉及动态规划&#xff0c;优化时可以考虑贪心算法和二分查找。原题给定一个无序的整数数组&#xff0c;找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101]&#xff0c;它的长度是 4。说明:可能会有多种最…

java 动态字符串_Java动态编译执行一串字符串,类似于Javascript里的eval函数

Javascript里的eval函数能动态执行一串js脚本。那Java里怎么做到呢。有两种方法:一种是使用可以执行js脚本的Java类 ScriptEngineManagerpublic static void main(String args[]){ScriptEngineManager manager new ScriptEngineManager();ScriptEngine se manager.getEngineB…

jquery全局变量_jQuery源码一个小细节,却很好地体现了性能优化的思想,很优秀...

写在前面听闻大佬们在写一些框架或者库的时候&#xff0c;到处都隐藏了一些细节&#xff0c;所以阅读他们的源代码&#xff0c;无论从性能优化、还是JS API的学习、亦或是代码风格等方面给到我们很多启发。这两天我翻看了一下jQuery1.x的源代码&#xff0c;看到了这么一段&…

mockito mock void方法_Spock如何模拟抽象类方法

我们平时写单元测试时经常会遇到调用抽象类或父类的方法&#xff0c;这些抽象方法可能是调用底层接口或数据库&#xff0c;需要mock掉&#xff0c;让抽象方法返回一个我们指定的值&#xff0c;以便测试当前代码逻辑的场景。下面讲下Spock如何结合power mock实现动态mock抽象方法…

new 实例化对象是啥意思_二. 初步认识JS中的类和对象

1 构造函数的定义在JS中, 没有类(class)的概念, 主要是通过构造函数来模拟的.语法function 构造函数名 () {// 函数体}使用function关键字表示定义一个构造函数构造函数名一般首字母大写示例function Person() {}通过以上方式就可以定义一个Person构造函数, 相当于定义好了一个…

正则匹配问号_爬虫之正则表达式

1什么是正则表达式正则表达式&#xff0c;也称规则表达式&#xff08;Regular Expression,在代码中常简写为RE&#xff09;。2为什么使用用来匹配、替换一类具有相同规则字符串3使用规则3.1单字符&#xff1a;3.2数量修饰&#xff1a;3.3边界&#xff1a;3.4分组&#xff1a;3.…

java treeset subset_Java中TreeSet的详细用法

第1部分 TreeSet介绍TreeSet简介TreeSet 是一个有序的集合&#xff0c;它的作用是提供有序的Set集合。它继承于AbstractSet抽象类&#xff0c;实现了NavigableSet, Cloneable, java.io.Serializable接口。TreeSet 继承于AbstractSet&#xff0c;所以它是一个Set集合&#xff0c…

sql执行有时候快有时候慢_如何让你的 SQL 执行的飞起?

OR 不能瞎用午饭间的小 C&#xff0c;答应着一起吃饭&#xff0c;却眼不离屏。我知道准是上午人甲产品经理又来了一个脏活。话说 SQL 程序员本身是个光荣的职业&#xff0c;顷刻间百万数据、百亿金额从指间流过&#xff0c;心都不带咯噔的。在心如止水的 SQL 编码师眼里&#x…

未备案域名临时跳过备案提示_做好了网页,有域名和服务器,还要怎么搭建网站?...

不知道你选择的服务器是国内大陆的还是国外或者香港的&#xff0c;如果是国内大陆的服务器我们的网站域名还需要备案&#xff0c;你的服务器提供商是那家就在那家备案&#xff0c;备案流程跟着提示走就可以了&#xff0c;接下来我们开始正式进入将网站三要素&#xff08;域名、…

louvain算法_单细胞聚类(四)图解Leiden算法对Louvain算法的优化

Louvain算法是目前单细胞分析中最常用的聚类算法[1]&#xff0c;Seurat/Scanpy/RaceID等单细胞分析工具都默认louvain算法。6天前HumanCell Atlas(HCA)团队发表在Nature Method上的单细胞分析流程中[2]&#xff0c;默认的聚类算法是scran包的方法&#xff1a;细胞间权重基于排序…

java 动态绑定原理_详解Java动态绑定机制的内幕(图)

在Java方法调用的过程中&#xff0c;JVM是如何知道调用的是哪个类的方法源代码&#xff1f; 这里面到底有什么内幕呢&#xff1f; 这篇文章我们就将揭露JVM方法调用的静态(static binding) 和动态绑定机制(auto binding) 。静态绑定机制//被调用的类package hr.test;class Fath…

java连接access2013数据库_滴水穿石–Java连接Access数据库及其操作

1、配置数据源【控制面板】—>【管理工具】—>【数据源ODBC】点击添加选择Microsoft Access Driver填写数据源名(自定义&#xff0c;如test)&#xff0c;并选择数据库(指定你的Access数据库文件)&#xff0c;如下图红色箭头标注最后&#xff0c;点击确定数据源配置完成2、…