Python Pandas 常用的数据结构有哪些?详解Series、DataFrame、Index数据结构。
Pandas常用数据结构
- Pandas简介
- Series
- 构建 Series 对象
- 通过数组/列表
- 通过ndarray
- 通过dict
- 指定index
- Series 数据结构
- 查看 Series 数据
- 数据预览
- 查看数据
- index索引
- values值
- name 属性
- 通过索引名(str)获取数据
- 通过索引位置(int)获取数据
- 缺失数据处理
- 字符串缺失
- 数值缺失
- DataFrame
- 构建 DataFrame 对象
- 通过ndarray
- 通过dict
- DataFrame 数据结构
- 查看 DataFrame 数据
- 获取行、列、值
- 数据预览
- 通过索引名获取数据
- 增加列数据
- 删除列
- Index
- 查看Index
- 更改Index值
- 重制Index
Pandas简介
一个强大的分析结构数据的工具集,基础是Numpy
import pandas as pd
Series
一维数组对象
构建 Series 对象
通过数组/列表
pd.Series(range(10,25))
通过ndarray
pd.Series(np.random.rand(3))
通过dict
pd.Series({'name': '谢晨', 'username_cn': '程序猿过家家', 'username_en': 'ProgrammerPlus', 'age': 23})
指定index
pd.Series(np.random.rand(3), index=['a', 'b', 'c'])
Series 数据结构
pd.Series(np.random.rand(5), index=['a', 'b', 'c', 'd', 'e'], name='rand_num')
Series类似于一维数组,由name、index和value组成。
查看 Series 数据
数据预览
ser_obj = pd.Series(np.random.rand(100))
当 ser_obj 数据量过大的时候,不希望全部展示出来,只需要展示部分数据
ser_obj.head(8) # 默认展示前五行数据
ser_obj.tail(8) # 默认展示后五行
查看数据
index索引
ser_obj.index
values值
ser_obj.values
name 属性
ser_obj = pd.Series(np.random.rand(100), name = 'rand_num')
ser_obj.head()
通过索引名(str)获取数据
ser_obj = pd.Series(np.random.rand(5), index=['a', 'b', 'c', 'd', 'e'])
通过索引名获取字符串
ser_obj.loc['b']
loc可以省略不写,一样实现的效果是一样的,建议能够写上,避免与通过索引位置取数据混淆。
ser_obj['b']
判断数据是否存在:
'd' in ser_obj
'programmerplus' in ser_obj
通过索引位置(int)获取数据
ser_obj.iloc[3]
iloc可以省略不写,一样实现的效果是一样的,建议能够写上,避免与通过索引名取数据混淆。
ser_obj[3]
缺失数据处理
字符串缺失
pd.Series(['谢晨', 'ProgrammerPlus', None, '程序猿过家家'])
字符串的缺失会展示为None
数值缺失
pd.Series([1,2,4,8,None, 32, 64, None, 256])
DataFrame
类似 多维数组 / 表格数据 如excel表格
每列数据可以是不同的数据类型
索引包括行索引(index)和列索引(label/column)
构建 DataFrame 对象
通过ndarray
pd.DataFrame(np.random.randn(5,4))
通过dict
df_obj = pd.DataFrame({'floa_': 1.,'time': pd.Timestamp('19981025'),'rang_': pd.Series(1, index=list(range(4)), dtype='float32'),'arra_': np.array([3] * 4, dtype='int32'),'pg_language': ['Python','Java', 'C', 'c++'],'name': 'xiechen',
})
如果数据量级少的时候,会自动补全。
DataFrame 数据结构
查看 DataFrame 数据
获取行、列、值
df_obj.columns
df_obj.index
df_obj.values
数据预览
获取前几行数据
df_obj.head(3) # 默认前5行
获取最后几行
df_obj.tail(3)
通过索引名获取数据
df_obj['pg_language']
df_obj.pg_language
第二种写法也可以实现,不推荐使用,如果index中存在一些特殊字符,就无法使第二种方式
增加列数据
df_obj['test'] = range(4)
df_obj
删除列
df_obj.drop(columns=['rang_', 'test'])
⚠️ 此操作不会修改原数据,df_obj还是原来的值,需要用一个变量来接受操作后的结果,如果想要对原数据可以使用del。
del df_obj['test']
Index
ser_obj = pd.Series(range(10,20,2))
查看Index
ser_obj.index
ser_obj.index[2]
更改Index值
ser_obj.index[2] = 100
index不可更改
重制Index
ser_obj.reset_index()
使用 reset_index 会将原有的index作为数据当中的一列,然后重新配置一个index。
不需要替换下来的index列可以增加参数 drop=True
ser_obj.reset_index(drop=True)
总结:
Index 不可变,不可以修改 index 里的值,保证数据安全,如果需要对 index 进行修改,可以使用 reset_index 对整列进行修改。
常见的 Index 种类:Index、Int64Index、MultiIndex(‘层级’索引)、DatatimeIndex(时间戳类型)
Python Pandas 常用的数据结构有哪些?详解Series、DataFrame、Index数据结构。相关推荐
- python移动平均线绘图_对python pandas 画移动平均线的方法详解
数据文件 66001_.txt 内容格式: date,jz0,jz1,jz2,jz3,jz4,jz5 2012-12-28,0.9326,0.8835,1.0289,1.0027,1.1067,1.0 ...
- Python正则表达式常用flag含义与用法详解
封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情(京东): ================== Python正则表达 ...
- python版 常用排序算法 思路加详解 冒泡排序、快速排序、插入排序、选择排序
注:这里所有排序操作都以从小到大排列为例,想要从大到小排的自行修改代码即可 目录 一.冒泡排序 思路: 步骤: 解析: 二.快速排序 思路: 步骤: 代码: 三.插入排序 思路: 代码: 四.选择排序 ...
- python中common在哪个模块导入_python的常用模块之collections模块详解
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- 数据结构--图(Graph)详解(一)
数据结构–图(Graph)详解(一) 文章目录 数据结构--图(Graph)详解(一) 一.图的基本概念 1.图的分类 2.弧头和弧尾 3.入度和出度 4.(V1,V2) 和 < V1,V2 & ...
- 数据结构--图(Graph)详解(四)
数据结构–图(Graph)详解(四) 文章目录 数据结构--图(Graph)详解(四) 一.图中几个NB的算法 1.普里姆算法(Prim算法)求最小生成树 2.克鲁斯卡尔算法(Kruskal算法)求最 ...
- 数据结构--图(Graph)详解(三)
数据结构–图(Graph)详解(三) 文章目录 数据结构--图(Graph)详解(三) 一.深度优先生成树和广度优先生成树 1.铺垫 2.非连通图的生成森林 3.深度优先生成森林 4.广度优先生成森林 ...
- 数据结构--图(Graph)详解(二)
数据结构–图(Graph)详解(二) 文章目录 数据结构--图(Graph)详解(二) 一.图的存储结构 1.图的顺序存储法 2.图的邻接表存储法 3.图的十字链表存储法 4.图的邻接多重表存储法 二 ...
- blankcount函数python,Python pandas常用函数详解
本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...
- python常用内置模块-Python常用内置模块之xml模块(详解)
xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...
最新文章
- UA MATH523A 实分析1 集合论基础7 一些度量空间基本概念
- Excel添加读音(中英均可)
- 在python中操作excel
- 【JAVA SE】第七章 继承和多态
- 爱心宠物诊所管理系统
- 360 RePlugin 初探
- 类818tu.c微信小说分销系统设计之定时模板消息源码
- 精选 Hive 高频面试题11道,附答案详细解析(好文收藏)
- 华为2022校招新版官网状态码查询方法
- 【老生谈算法】matlabBOOST电路的设计与仿真——BOOST电路
- Keil代码折来叠功能显示与隐藏!!!
- Photoshop抠图教程(超详细)
- jsp:include和%@include file=%有什么区别
- Linux安装Tomcat(非Docker安装、开放端口)
- 【RL-TCPnet网络教程】第4章 RL-TCPnet网络协议栈简介
- echarts 自定义y轴高度
- 统信UOS安装 执行 curl命令
- 深入理解线性规划中的基可行解
- MOOC清华《程序设计基础》第1章第5题:银行存款问题
- Java项目开发-健身房管理系统