zoukankan      html  css  js  c++  java
  • 点开,看一段,你就会喜欢上学习pandas,你该这么学!No.3

    身为一个啰嗦的博主,还是要说点啥,如果你不想学,直接拖拽到最后,发现彩蛋,然后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吧

    在这里插入图片描述

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

    掏出你的手机,拍这个

    在这里插入图片描述

  • 相关阅读:
    URAL 2067 Friends and Berries (推理,数学)
    URAL 2070 Interesting Numbers (找规律)
    URAL 2073 Log Files (模拟)
    URAL 2069 Hard Rock (最短路)
    URAL 2068 Game of Nuts (博弈)
    URAL 2066 Simple Expression (水题,暴力)
    URAL 2065 Different Sums (找规律)
    UVa 1640 The Counting Problem (数学,区间计数)
    UVa 1630 Folding (区间DP)
    UVa 1629 Cake slicing (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/happymeng/p/10947483.html
Copyright © 2011-2022 走看看