Liz's Blog

Python學習筆記#4:Pandas實作篇

| Comments

複習一下pandas篇,再進入實際資料操作,就會覺得pandas變好親民啊~

Udemy
課程名稱:Python for Data Science and Machine Learning Bootcamp
講師:Jose Portilla

講師給了兩個Pandas的實作練習,一個是Kaggle上SF Salaries的資料,可以探索舊金山薪資資料。第二個是購買資料,但完全是假資料,因為兩個練習差不多,所以我只放了第一個。

1.匯入資料

#套入pandas套件
import pandas as pd

#讀取csv檔
sal = pd.read_csv('Salaries.csv')

#確認是否讀入為data frame
sal.head()

#使用info()來看有多少樣本,共有148654個樣本
sal.info()

2.練習找出平均值、最大值

#平均基本工資mean
sal['BasePay'].mean()

#最高的加班費max
sal['OvertimePay'].max()

3.練習使用兩個[]找出特定欄位的其他值

#找出JOSEPH DRISCOLL的職稱
sal[sal['EmployeeName']=='JOSEPH DRISCOLL']['JobTitle']

#JOSEPH DRISCOLL所有薪水
sal[sal['EmployeeName']=='JOSEPH DRISCOLL']['TotalPay']

#TotalPayBenefits最高的人
sal[sal['TotalPayBenefits']==sal['TotalPayBenefits'].max()]
#也可用loc & idxmax也可以得到最高薪者
sal.loc[sal['TotalPayBenefits'].idxmax()]

#最低薪者的名字
sal[sal['TotalPayBenefits']==sal['TotalPayBenefits'].min()]
#也可以用loc & idxmin得到答案
sal.loc[sal['TotalPayBenefits'].idxmin()]

4.練習groupby

#得到每年的基本工資平均
sal.groupby('Year').mean()['BasePay']

5.練習找出unique value

#有多少不同的工作名稱
sal['JobTitle'].nunique()

#最常見的五種工作,先利用value_counts,再用head(5)列出
sal['JobTitle'].value_counts().head(5)

6.練習apply & lambda

#有多少人的職稱中有Chief
def chief_string(title):
    if 'chief' in title.lower():
        return True
    else:
        return False

sum(sal['JobTitle'].apply(lambda title: chief_string(title)))

7.練習關聯性

#使用corr()來看職稱的長短和薪水有關聯性嗎
sal['title_len'] = sal['JobTitle'].apply(len)
sal[['title_len','TotalPayBenefits']].corr()

Comments

comments powered by Disqus