如果图片无法观看,请移步 https://blog.csdn.net/hihell
标题起的长,才能引起你的注意呢
昨天,有个家伙,留言给我说
嫌我不好好写博客
就知道给文章配表情包
在这里,郑重的回复一下
我愿意(╬◣д◢)
上篇博客,我们捣鼓了属性和简单的几个函数
这篇博客,我们继续围绕着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)
看到没?
出现效果了
行索引,变成列索引
列索引,变成行索引
厉害,厉害
其实这个就是转置
线性代数上线啦
下课!
话不多说,结束,开始展示公众号
还等什么,关注吧~