資料科學第四週-資料處理常用操作
986 字約 3 分鐘閱讀
資料科學python

以前面的資料為延續,繼續介紹幾個常用到的函式
超級好用的groupby()
類似於Excel的樞紐分析,進行分組,先以性別試看看
python
df_grouped=df.groupby('性別')
df_grouped.mean()

python
df_grouped[['平均','第一次段考','期末考']].mean()
女生不論在平均成績、段考或期末考,平均都高於男生
更多參考:
https://zhuanlan.zhihu.com/p/101284491
成績由高到低排列sort_values()
將成績由高到低排列是常用的功能,其中參數ascending意思為是否遞增
試著以學期成績做排序
python
df_sort = df.sort_values(by='學期成績',ascending=False)
df_sort
取部分成績作平均
因為整個學期會很很多次小考與作業,取部分成績的好處是,剔除極端低的數值,不要因為一兩次不認真,拖累到整體成績,跟剛才一樣先取出要計算的範圍
python
df_10 = df.iloc[:,2:12]
df_10
nlargest()取每欄前n大的值
python
df_10['1流程圖'].nlargest(10)
可以很輕易的取出流程圖這次作業前十高的分數,但是要怎麼取一個同學(一整列)的前十高分數呢?
進階:要怎麼取列,使用apply()
有些函式並不支援直接對axis=1來做運算
python
df_10.nlargest(10,axis=1)
可以使用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 來說,就是對一整列做事情

python
#每列的largest(10)取平均放入df['平均']
df['平均2']=df_10.apply(lambda x:x.nlargest(10).mean(),axis=1)
df['平均2']
更多參考:
版權聲明
文章標題:資料科學第四週-資料處理常用操作
文章作者:阿盧老師
文章連結:https://codinglu.tw/blog/data-process-groupby
授權條款:本文採用 CC BY-NC 4.0 授權。轉載請標明出處。