对不起,给pandas配表情包太难了,pandas你该这么学,No.6

1,252 阅读4分钟

标题起的长,才能引起你的注意呢

昨天,有个家伙,留言给我说 嫌我不好好写博客

就知道给文章配表情包

在这里,郑重的回复一下

我愿意(╬◣д◢)

在这里插入图片描述

上篇博客,我们捣鼓了属性和简单的几个函数

这篇博客,我们继续围绕着dataframe转圈圈吧

首先从计算函数说起

咱先声明一个dataframe,方便后续操作

import pandas as pd

df_dict = {
    "boys":[10,20,30],
    "girls":[20,40,60]
}

df = pd.DataFrame(df_dict)
print(df)

对于一个高手来说,从上帝视角对数据有一个基本的把握是最重要的

那么我们需要一个函数

describe

你只需要使用一下,就能得到很多的信息哦~

来,看一下结果

       boys  girls
count   3.0    3.0
mean   20.0   40.0
std    10.0   20.0
min    10.0   20.0
25%    15.0   30.0
50%    20.0   40.0
75%    25.0   50.0
max    30.0   60.0

这不要啥有啥么

只要你英文没啥大问题,认识count,mean,std,min,max

恭喜你,上面的数据 你都能看懂

这上帝视角

数据一览无余

在这里插入图片描述

接下来,你就可以分开显示了

pandas神奇的地方即将出现

当你学会一个函数 同步你会学会好几个

我拿count举个栗子啊 为什么,拿着个举例子

还不是因为它最简单!

先看代码,在讲解

import pandas as pd
df_dict = {
    "boys":[10,20,30],
    "girls":[20,40,60]
}
df = pd.DataFrame(df_dict)
print(df.count(axis=0))

输出的结果,请注意

boys     3
girls    3
dtype: int64

是个series没错了

那么,重点来了,我这个伪大佬要开课了

df.count()函数,统计cells个数, 额,还是大白话吧

就是统计行或者列的小格子个数

在这里插入图片描述

嗯,这么说,容易懂

它有个参数,非常,非常,非常重要

以后会经常碰到

这个参数,就是axis,翻译成中文,叫做轴

没错,就是坐标轴的那个轴

默认值呢是0

0等于index 1等于columns

难度来了,这个地方不好记(因为,我总是搞错 Σ(っ°Д°;)っ)

在这里插入图片描述

在尝试大白话解释一下df.count(axis=0)的意思

统计每一列单元格(小格子)数量

咦?不太对啊

刚刚不是还说0等于index么?

df.count(axis=0),不应该统计行么?咋还统计成列了呢?

解释最后一次了哦

axis=0 这个参数表示为每列生成计数

在这里插入图片描述
上面的红框,叫做每列

所以,列名有几个,统计出来的结果就有几个

这个很容易晕哦~

我觉得你应该晕了

哎~慢慢绕吧

在这里插入图片描述

同理axis=1就表示为每行生成计数

刚刚的数据有三行,那对应的肯定生成三行喽

小提示

axis='index' 等于  axis = 0
axis = 'columns' 等于 axis = 1

为什么要在这个地方叨叨这么多呢

还不是因为下面这个图

在这里插入图片描述
看完这个图,之后

我相信,你应该对axis这个函数瞬间感兴趣了

在这里插入图片描述

这完全搞不定,没法用的节奏啊

难不成,每次都跟我一样

先猜0,不对,在换成1

哈哈哈哈哈哈哈哈哈 (好像暴露了,我菜的本质了呢)

在这里插入图片描述

df.count()学习完毕之后,来个df.min(),df.max(),df.mean()吧

哈哈,这三个函数咱看一下,其实非常简单的

import pandas as pd
df_dict = {
    "boys":[10,20,30],
    "girls":[20,40,60]
}
df = pd.DataFrame(df_dict,index=['class1','class2','class3'])
print(df.mean(axis=1))
  • df.min() 最小值
  • df.max() 最大值
  • df.mean() 平均值

上面是获取值

记住,有值就有索引

然后再展示一段代码

需求,我们要获取每列中最小值的索引

import pandas as pd

df_dict = {
    "boys":[10,20,30],
    "girls":[20,40,60]
}

df = pd.DataFrame(df_dict,index=['class1','class2','class3'])
print(df.mean(axis=1))
print(df.idxmin())

  • df.idxmin() 按照列获取
  • df.idxmin(axis=1) 按照行获取

电脑面前的你,赶紧的吧,

你一试就知道结果了

还等什么?

其他的,像方差,求和,标准差,都去试试吧

你可以滴!

在这里插入图片描述

T来了

在学习series的时候,我们用了一个s.T 神奇的是啥效果也没有

今天用dataframe在来试一下

import pandas as pd

df_dict = {
    "boys":[10,20,30],
    "girls":[20,40,60]
}

df = pd.DataFrame(df_dict,index=['class1','class2','class3'])

print(df)
print("x"*50)

print(df.T)

在这里插入图片描述

看到没? 出现效果了

行索引,变成列索引 列索引,变成行索引

厉害,厉害

其实这个就是转置

线性代数上线啦

下课!

在这里插入图片描述

话不多说,结束,开始展示公众号

在这里插入图片描述
还等什么,关注吧~