如果圖片無法觀看,請移步 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)
看到沒?
出現效果了
行索引,變成列索引
列索引,變成行索引
厲害,厲害
其實這個就是轉置
線性代數上線啦
下課!
話不多說,結束,開始展示公眾號
還等什么,關注吧~