数据分析入门——pandas之DataFrame基本概念
一、介绍
数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。
可以看作是Series的二维拓展,但是df有行列索引:index、column
推荐参考:https://www.jianshu.com/p/c534e83d2f4b
二、快速入门
1.打开csv
发现报错,原因是路径中\User的\u和转义符号冲突了,我们使用字符串中的知识,添加r开头表示不转义即可:
它包含的是行列索引和值values,value对应的就是二维的ndarray了
2.创建df
1.通过字典来创建df
可以通过index属性来控制索引,column同理:(在创建以后通过df.index = []的属性赋值也可以实现控制索引的)
2.可以通过列表来创建,给定ndarray,再给定Index和columns来构造df
参考:https://www.yiibai.com/pandas/python_pandas_dataframe.html
3.df的索引
列索引:
通过列的索引检索,可以返回对应的列,也就是之前的Series
行索引:
使用loc或者iloc进行索引(其中,前者是显式索引,需要指定索引的值,后者是隐式索引,已过时的ix方法不再展开)
使用loc检索出一行,发现结果也是Series:
需要检索多行时,需要两个中括号(并且返回的也是DataFrame):
并且loc是支持切片(左右的闭区间)的:(支持的是行切片,如果切片范围不存在,则返回空数据,而不是报错)
隐式索引是类似的:(但是iloc的切片是左闭右开,与上面稍有不符合)
//存在部分bug:汉字索引有个别索引不生效,无法检索
元素索引:
可以通过线检索出某一列,再操作这个列Series(注意使用loc的推荐方法):
其他变通形式同理:
上面这个简写就变成:这就是行索引的变通形式
4)DataFrame的数据查看
1.通过head()、tail()查看头几行或者尾几行(默认n = 5):
2.通过a.index ; a.columns ; a.values 即可查看对应属性
3.a.sort_index(axis=1,ascending=False);
其中axis=1表示对所有的columns进行排序,下面的数也跟着发生移动。后面的ascending=False表示按降序排列,参数缺失时默认升序。
三、DataFrame的运算
1.DF之间的运算
构建的df1、df2如下:(用于后续计算)
其实总结下来就是,行列索引相同的(也就是需要对齐再相加,无法对齐时使用NaN对齐,列会取并集,行值不对齐时使用默认NaN),进行计算,没有的全部用空进行计算(参考https://blog.csdn.net/weixin_34208283/article/details/86005233)
https://blog.csdn.net/weixin_33966095/article/details/88446784
需要避免NaN值可以使用pandas的add方法的fill_value来控制:
2.DF与Series之间的运算
直接运算,发现结果并不如人意:
提取行发现可以计算:
这也就是Series中的广播规则,默认情况下是s的index和df的columns进行对齐的,第二个对齐后的操作,看数据知道是广播成了四行与df对齐,可以通过 axis来进行广播控制(0表示在列上广播,1表示在行上广播)
数据分析入门——pandas之DataFrame基本概念的更多相关文章
- 数据分析入门——pandas之DataFrame数据丢失
一.数据丢失分类 1)nd中分为两种:None和np.nan(NaN) 其中,None是python中的对象,是一个object:而nan是一个float类型 两种不同的类型,运算速度也是不同的 2) ...
- 数据分析入门——pandas之DataFrame多层/多级索引与聚合操作
一.行多层索引 1.隐式创建 在构造函数中给index.colunms等多个数组实现(datafarme与series都可以) df的多级索引创建方法类似: 2.显式创建pd.MultiIndex 其 ...
- 数据分析入门——pandas之Series
一.介绍 Pandas是一个开源的,BSD许可的库(基于numpy),为Python编程语言提供高性能,易于使用的数据结构和数据分析工具. 官方中文文档:https://www.pypandas.cn ...
- 数据分析入门——Pandas类库基础知识
使用python进行数据分析时,经常会用Pandas类库处理数据,将数据转换成我们需要的格式.Pandas中的有两个数据结构和处理数据相关,分别是Series和DataFrame. Series Se ...
- 数据分析入门——pandas数据处理
1,处理重复数据 使用duplicated检测重复的行,返回一个series,如果不是第一次出现,也就是有重复行的时候,则为True: 对应的,可以使用drop_duplicates来删除重复的行: ...
- 数据分析入门——pandas之数据合并
主要分为:级联:pd.concat.pd.append 合并:pd.merge 一.numpy级联的回顾 详细参考numpy章节 https://www.cnblogs.com/jiangbei/p/ ...
- 数据分析入门——pandas之合并函数merge
merge有点类似SQL中的join,可以将不同数据集按照某些字段进行合并,得到新的数据集 1.参数一览表: 2.一对一连接:默认情况下,会按照相同字段的进行连接 例如有相同字段emp的两个df,m ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- 利用python进行数据分析之pandas入门
转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...
随机推荐
- python开发基础-Pycharm快捷键
1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + ...
- Python语言程序设计(1)--实例1和基本知识点
记录慕课大学课程<Python语言程序设计>的学习历程. 实例1:温度转换 #温度转换TempStr = input("请输入带有符号的温度值:") #TempStr是 ...
- used to do 与be used to doing /n.
1.used to do:表示过去的习惯性动作,过去如此,现在不再这样了.常译作“过去常常”.(过去时+动词不定式) He used to play basketball when he was yo ...
- 八.Protobuf3更新消息类型(添加新的字段)
Protobuf3 更新消息类型 如果现有的消息类型不满足你的所有需求——例如,你希望消息格式有一个额外的字段——但是你仍然希望使用用旧格式创建的代码,别担心!在不破坏任何现有代码的情况下更新消息类型 ...
- Vue 组件生命周期钩子
Vue 组件生命周期钩子 # 1)一个组件从创建到销毁的整个过程,就称之为组件的生命周期 # 2)在组件创建到销毁的过程中,会出现众多关键的时间节点, 如: 组件要创建了.组件创建完毕了.组件数据渲染 ...
- 将dedecms织梦后台编辑器ckeditor更换为kindeditor,并高亮显示代码
1.下载kindeditor,并解压到kindeditor目录,把kindeditor目录复制到dede的include目录下(ps:修改kindeditor-all-min.js.lang文件夹下z ...
- 机器学习-- 入门demo1 k临近算法
1.k-近邻法简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法. 它的工作原理是:存在一个样本数据集合,也称作为 ...
- PHP文件载入
一.介绍 在实际开发中,经常会在一个PHP文件中引入其他的文件,被引入的文件可以是HTML文档,也可以是PHP文件 二.语法 require(文件名)和require_once(文件名) includ ...
- 分享7个shell脚本实例--shell脚本练习必备
概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...
- setTimeout 的理解
setTimeout,延迟一段时间执行代码. setTimeout(func,0),这代码的作用并不是简单地和直接调用func一个效果: 1:动态往DOM树中插入元素,然后立刻操作这个元素(选择文本框 ...