身为一个啰嗦的博主,还是要说点啥,如果你不想学,直接拖拽到最后,发现彩蛋,然后3秒

我呢,有个小目标,就是把技术类的文章,写的有趣

编程呢,最难的是什么?

我投票给入门

其实,把一个人带进编程的大门是最难的

而梦想橡皮擦这位大佬,就在做这个事情

(说白了,就是高深的文章写不出来,还要装做大佬,心好累,好不容易找到这么一个借口,真开心)

我要通过一个系列的pandas文章

让你学会这一个简简单单的模块

然后还能顺便写点好玩的东东

美哉~

每篇文章,让你阅读起来如丝般顺滑

继续pandas,series函数的学习

上篇博客,咱们就稍微了解了一丢丢series的函数

远远不够的

这篇呢,我们继续

心里默念

pandas是处理数据的,是处理数的,数字的

OK,GET到这个就好多了

后面我就好编了

import pandas as pd
s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
print(s)

我创建了一个基本的Series,然后要对它进行处理了

对一个线性的数据来说

我们可以干很多事情

比如,我要获取最大最小值

import pandas as pd

s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])

print(s.min())
print(s.max())

这个写法还是太简单了,显示不出来我们学到东西了

咱弄点新鲜的(其实就是官网比较复杂的例子)

先给series创建一个带有层次的索引

带有层次的索引,啥意思?

其实就是excel里面的合并单元格

看代码

idx = pd.MultiIndex.from_arrays([
['warm', 'warm', 'cold', 'cold'],
['dog', 'falcon', 'fish', 'spider']]
,names=['blooded', 'animal']) s = pd.Series([4, 2, 0, 8], name='legs', index=idx)
print(s)

一个关于冷血动物和温血动物关于有多少足的表格

唉,好长一段文字,输出长这个样子



看不明白,没关系,放到excel里面瞅瞅



咋么样,小版一排,清晰明了

就一个表格

当前前面依旧是index

真正的数据就后面那一列

然后,操作一番


idx = pd.MultiIndex.from_arrays([
['warm', 'warm','warm', 'cold', 'cold'],
['dog', 'falcon','people', 'fish', 'spider']]
,names=['blooded', 'animal']) s = pd.Series([4, 2,2, 0, 8], name='legs', index=idx)
print(s)
print(s.min())
print(s.max(level='blooded'))

后面的level就是控制多索引的哦~

看到结果,你可以秒懂吗?

s = pd.Series([4, 2,2, 0, 8], name='legs', index=idx)
print(s)
print(s.min()) # 输出0
print(s.max(level='blooded')) # 输出 下面的表格

没错,我是下面的表格

学会了吧,这个学会了,min,max,sum,idxmin,idxmax你应该都会了

什么idx是啥?看看上面的代码

那个是索引... ...

还要啰嗦一个属性

对于series来说,还有一个属性非常,非常重要,重要到使用之后,没啥效果?

这个属性就是T

没错,一个大写的字母T

哈哈哈,其实这个属性对于series来说,基本没啥用

使用之后还是等于自己本身

s = pd.Series([3,1,4],index=['a','b','c'])
print(s)
print(s.T)

继续看函数

好像跑偏了,怎么看到属性去了

继续看函数啊

一个线性杂乱的数据,对于我们来说

还可以排序啊

import pandas as pd

s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])

既然排序了,你一猜,就能猜到(其实一般人根本猜不到,也就老师觉得你能猜到)

一个是按照值排序,一个是按照索引排序

import pandas as pd

s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])

print(s.sort_values())
print(s.sort_index())

排序的一些参数,可以屡屡

Series.sort_values(axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
  • axis 按照哪个参考轴排序. 对于 Series来说,只能设置为0
  • ascending 倒序还是正序 True升序
  • inplace 默认false,修改为true,原地修改?咦,不明白吧,一会我给你举个栗子
  • kind 排序方法 快速排序,归并排序,堆排序
  • na_position 空值,在前还是在后,这个,你试一下就知道了

inplace

看一下下面的代码,原地替换

s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])
sorted_s = s.sort_values(inplace=True)
print(sorted_s)

这时候打印出来的是None,但是你打印s,就能出现排序之后的文字

明白了没?

就是把s变量直接给排序了

排序搞定之后,就要尝试获取series中的部分内容

获取头部几条

头部头部head

获取末尾几条

tail,tail

import pandas as pd

s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])

print(s.head(2))
print(s.tail(2))

获取部分数据可以,那么肯定也可以删除数据喽

(我顺口说的)

Series.drop

import pandas as pd

s = pd.Series([3,1,4,1,5,9,2,6,8,3,6])

print(s.drop(labels=[0,1]))

对于series来说,labels参数是必备的

为什么呢?因为其它的压根不支持



新版本的可以用index替换labels

好了,又学到新知识点了吧

不多不少,几个正好

每日学一点吧,啊

明天写点啥,可能是DataFrame吧

最后,欢迎关注一个唠叨的编程工程师的公号,非本科程序员

掏出你的手机,拍这个

点开,看一段,你就会喜欢上学习pandas,你该这么学!No.3的更多相关文章

  1. 如果你说最近在看《诛仙》,平时喜欢玩LOL,你就是在把自己往悬崖上推

    面试官可能会问你一些和技术看上去没有任何关系的问题,比如问你最近在看什么书,学习之余喜欢做什么,常去哪些网站之类的.如果你说最近在看<诛仙>,平时喜欢玩LOL,你就是在把自己往悬崖上推.实 ...

  2. 如何看一段JAVA代码耗了多少内存

    简单的方法,如下: Runtime r = Runtime.getRuntime();  r.gc();  long startMem = r.freememory(); // 开始时的剩余内存  你 ...

  3. 看一段Delphi导出到Word的源代码

    procedure TFrmWeekAnalysisQry.BtnExportToExcelClick(Sender: TObject);var wordApp,WordDoc,WrdSelectio ...

  4. 看完这些,你就算得上既了解围棋又了解alphago了

    首先,我们要祝贺小李下出第78手的“神之一手”,这一手堪称前无古人后无来者,尤其是结合了阿尔法狗自暴自弃的表现.小李说过他的失败并不是人类的失败,同样,小李的胜利也只是属于他一人的胜利. 然而人类在围 ...

  5. 一篇自己都看不懂的点分治&点分树学习笔记

    淀粉质点分治可真是个好东西 Part A.点分治 众所周知,树上分治算法有$3$种:点分治.边分治.链分治(最后一个似乎就是树链剖分),它们名字的不同是由于分治方式的不同的.点分治,顾名思义,每一次选 ...

  6. Maven系列第6篇:生命周期和插件详解,此篇看过之后在maven的理解上可以超越同级别90%的人!

    maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能. 这是maven系列第6篇. 整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部 ...

  7. 《明解c语言》已看完,练习代码此奉上

    2016年9月20日至2016年11月12日,从学校图书馆借来的<明解c语言>看完了. 大三第一个学期,前8周,有c语言程序设计的课.课本是学校里的老师编写出版的,为了压缩空间,减少页面, ...

  8. 《java编程思想》读书笔记 暂停一段时间,改为上面的练习题

    发现个很尴尬的现象.我一天实在看得太快了...全写下 写博客都得一晚上.. 之前因为是第一次看这么厚的书,别人都说很难,以为会看很慢的.然而,已经完全学过Java的 我感觉没啥压力,越看越快....第 ...

  9. ScrollView嵌套ListView的滑动冲突问题,是看大神的方法的,作为学习以后用的到

    在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...

随机推荐

  1. java静态变量、实例变量和局部变

    实例变量又称成员变量: 1⃣️成员变量定义在类中,在整个类中都可以被访问 2⃣️成员变量随着对象的建立而建立,随对象的消失而消失,存在于对象所在的对内存中 3⃣️成员变量有默认初始值 局部变量: 1⃣ ...

  2. 跟着alex学习了格式化输出,最大的感受就是编程这个事,一定要自己动手去做,才能学会。看会和自己会做完全是两码事

    学习了三天,现在学到格式化输出.看视频教程,alex和那个美女学员打情骂俏,真是羡慕啊. 教程看懂很容易,完全会了. 可是上手编程马上歇菜. 就这么几行的代码,我遇到了n多错误 首先是中文输入的错误, ...

  3. HDU1465 不容易系列之一&&HDU4535吉哥系列故事——礼尚往来

    HDU1465不容易系列之一 Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加 ...

  4. 使用python的几个小经验(查看文档)

    好久没有水博客了,未来再过20天不到的时间又得参加软考,今天终于得好好水一发帖子 关于Python,很多人包括我之前都不知道怎么找文档,现在有一个好办法,就是在命令行模式下调用pydoc –p xxx ...

  5. Mac下对Android apk反编译

    在Mac上进行反编译apk,需要三个工具,分别为(附下载地址): apktool,下载Mac版 作用:资源文件获取,能够提取出图片文件和布局文件进行使用查看 dex2jar,下载最新的即可,目前是2. ...

  6. 65.dynamic mapping

    主要知识点: 理解dynamic mapping 定制dynamic mapping 更改default dynamic mapping     一.理解dynamic mapping 1.基本概念 ...

  7. 个人学习记录--取表中Name相同的最大值,非Group By,可延伸

    ), qy ), je INT); INSERT INTO @t SELECT '产品一', '北京', UNION ALL SELECT '产品一', '上海', UNION ALL SELECT ...

  8. linux学习5-命令执行顺序控制与管道

    一.命令执行顺序控制 1.顺序执行命令——[:] eg:whoami:cd ~:pwd 问题:不适合存在依赖关系的命令 2.有选择的执行命令[&&].[||] [&&] ...

  9. 洛谷 1373 dp 小a和uim之大逃离 良心题解

    洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...

  10. 给sunpinyin加速

    因为sunpinyin词库一大就会卡,因此需要自己添加一个脚本给sunpinyin加速. 加速的原理就是把词库添加到内存,现在内存都这么大,根本不在乎这么几兆,当然输入体验更重要啦- 首先先建一个脚本 ...