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

python的pandas库学习笔记


导入:

import pandas as pd

from pandas import Series,DataFrame

1、两个主要数据结构:Series和DataFrame

(1)Series是一种类似于一维数组的对象,由数据和标签组成;标签未传入则默认标签为0到N-1.

obj=Series([4,7,-5,3])

Out0 4

1 7

2 -5

3 3

obj.values=array([4,7,-5,3]);obj.index=Int64Index([0,1,2,3])

 

obj2=Series([4,7,-5,3],index=['d','b','a','c'])
obj2d 4

b 7

a -5

c 3

取值obj2['a']=-5;修改obj2['d']=6,则obj2[['c','a','d']]=
Outc 3

a -5

d 6

根据字典创建:sdata={'A':100,'B':200,'C':300};obj3=Series(sdata)(按键值有序排列)

obj3A 100

B 200

C 300
 states=['B','C','D'];obj4=Series(sdata,index=states)
obj4B 200

C 300

D NaN(缺失值)

 isnull和notnull函数用于检测缺失数据,pd.isnull(obj4)和pd.notnull(obj4)结果分别是:

 

OutB False True

C False True

D True False
 算术运算中会自动对齐,obj3+obj4

 

 

OutA NaN

B 400

C 600

D NaN

 对象本身和索引都有name属性;索引可以通过赋值方式修改。

 

(2)DataFrame是一个表格型数据结构,含有一组有序的列,每列可以是不同的值类型。

等长字典构建。data={'A':['a','b','c'],'B':[1,2,3],'C':[0.1,0.2,0.3]};frame=DataFrame(data)(有序排列ABC);指定顺序排列DataFrame(data,columns=['B','C','A']);指定索引frame2=DataFrame(data,columns=['B','C','A','D'],index=['one',two','three'])

 

Out  A B  C      B  C  A         B  C  A  D

0 a 1 0.1     1 0.1 a    one  1 0.1 a NaN

1 b 2 0.2     2 0.2 b    two  2 0.2 b NaN

2 c 3 0.3     3 0.3 c   three 3 0.3 c NaN

 可以通过类似字典标记的方式或属性的方式,获取列为一个Series。frame2['A']或frame2.B;获取行用ix,frame2.ix['one'];列可以通过赋值方式修改,frame['D']=10或np.array(3.)。利用del删除列,如del frame2['D']。

嵌套字典构建,外层字典的键作为列,内层键作为行索引。

2、基本功能

(1)reindex创建一个适应新索引的新对象,根据新索引进行重排,某个索引值不存在,引入缺失值。fill_value填充空值,method=‘ffill'根据前一个值填充;‘bfill'后向填充。

(2)drop在指定轴上删除指定值的新对象。对于DataFrame,axis=0删除行,默认为行;axis=1删除列。

(3)利用标签的切片运算,末端是包含的。

3、算术运算和数据对齐

可以对不同索引的对象进行算术运算,相加的索引为索引的并集,不重叠的索引引入缺失值 。

 

转载于:https://www.cnblogs.com/zhenpengwang/p/10757579.html

相关文章:

  • 最全的前端模块化方案
  • 深入浅出了解“装箱与拆箱”
  • 力扣算法题—091解码
  • 如何利用在线画图网站绘制流程图
  • 软件原型设计工具Axure
  • 数据脱敏(一)--基础知识
  • linux-高并发与负载均衡-lvs-DR模型试验
  • Guns 旗舰版 2.4 发布,更简洁的管理系统
  • JAVA中AWT编程
  • swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解一下呗~
  • Kubernetes单机部署操作学习
  • 第十周学习进度报告
  • 代码规范
  • 前端vue:节点、树以及虚拟 DOM
  • 【集合框架】JDK1.8源码分析之HashMap
  • 【Amaple教程】5. 插件
  • 【RocksDB】TransactionDB源码分析
  • Android系统模拟器绘制实现概述
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • emacs初体验
  • Java Agent 学习笔记
  • Linux下的乱码问题
  • Swoft 源码剖析 - 代码自动更新机制
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 技术:超级实用的电脑小技巧
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 聊一聊前端的监控
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 小而合理的前端理论:rscss和rsjs
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (0)Nginx 功能特性
  • (2)STM32单片机上位机
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (LeetCode C++)盛最多水的容器
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转载)Linux网络编程入门
  • .gitignore文件_Git:.gitignore
  • .net core使用ef 6
  • .NET 反射的使用
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .net 流——流的类型体系简单介绍
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • ::before和::after 常见的用法
  • :如何用SQL脚本保存存储过程返回的结果集
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [].slice.call()将类数组转化为真正的数组
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [BZOJ1008][HNOI2008]越狱