所有文章

資料科學第四週-資料處理常用操作

9863 分鐘閱讀
資料科學python
資料科學第四週-資料處理常用操作

以前面的資料為延續,繼續介紹幾個常用到的函式

超級好用的groupby()

類似於Excel的樞紐分析,進行分組,先以性別試看看

python
df_grouped=df.groupby('性別')

df_grouped.mean()
Image
python
df_grouped[['平均','第一次段考','期末考']].mean()
Image

女生不論在平均成績、段考或期末考,平均都高於男生

更多參考:

https://zhuanlan.zhihu.com/p/101284491

成績由高到低排列sort_values()

將成績由高到低排列是常用的功能,其中參數ascending意思為是否遞增

試著以學期成績做排序

python
df_sort = df.sort_values(by='學期成績',ascending=False)
df_sort
Image

取部分成績作平均

因為整個學期會很很多次小考與作業,取部分成績的好處是,剔除極端低的數值,不要因為一兩次不認真,拖累到整體成績,跟剛才一樣先取出要計算的範圍

python
df_10 = df.iloc[:,2:12]
df_10
Image

nlargest()取每欄前n大的值

python
df_10['1流程圖'].nlargest(10)
Image

可以很輕易的取出流程圖這次作業前十高的分數,但是要怎麼取一個同學(一整列)的前十高分數呢?

進階:要怎麼取列,使用apply()

有些函式並不支援直接對axis=1來做運算

python
df_10.nlargest(10,axis=1)
Image

可以使用apply()是對每一個axis,進行函式操作,順便也可以先了解一下python中的lambda是什麼?

lambda 是什麼

python
def f(x):
	return x**2

print(f(3))

上面是學過的定義函式 使用lambda可以更簡化只有簡單條件的函式,稱之為匿名函式

python
#做出相等的匿名函式
f = lambda x:x**2
print(f(3))

apply()與nlargest()

apply()是對每一個axis,進行函式操作,以axis=1 來說,就是對一整列做事情

Image
python
#每列的largest(10)取平均放入df['平均']
df['平均2']=df_10.apply(lambda x:x.nlargest(10).mean(),axis=1)
df['平均2']
Image

更多參考:

https://zhuanlan.zhihu.com/p/100064394

版權聲明

文章標題:資料科學第四週-資料處理常用操作

文章作者:阿盧老師

文章連結:https://codinglu.tw/blog/data-process-groupby

授權條款:本文採用 CC BY-NC 4.0 授權。轉載請標明出處。