Python pandas.pivot_table學習筆記1

import pandas as pd
import numpy as np
data = pd.read_csv('realwage_simplified.csv')
data = data.set_index('Time')
data.head(11)

在這裏插入圖片描述
1、以“國家”爲指標,在不同時間顯示不同的實際工資值。只需顯示透視表的前5行。

data.pivot_table(index=['Country'],columns=['Time'],values=['realwage']).head(5)

在這裏插入圖片描述

2、以“國家”爲指標,顯示不同的實際工資值統計指標,包括平均數、中位數、最小值、最大偏差、標準差。只需顯示樞軸表的前5行。(提示:aggfunc)。

data.pivot_table(index=['Country'],values=['realwage'],aggfunc=[np.mean,np.median,min,max,np.std]).head(5)

在這裏插入圖片描述

3、定義一個函數來計算去除異常值後的序列平均值,假定它低於0.25分位數或高於0.75分位數。將步驟3中的“中位數”替換爲“Remove_Outliers”函數。只需顯示樞軸表的前5行。

def remove_Outliers(sequence):
    Q1=sequence.quantile(0.25)
    Q3=sequence.quantile(0.75)
    finalSequence = [x for x in sequence if (x > Q1 )]
    finalSequence = [x for x in finalSequence if (x < Q3)]
    finalSequence = np.mean(finalSequence)
    return finalSequence
data.pivot_table(index=['Country'],values=['realwage'],aggfunc=[np.mean,min,max,np.std,remove_Outliers]).head(5)

在這裏插入圖片描述

4、使用“國家”和“時間”作爲多個指數,顯示排除異常值前後的序列平均值,特別是,我們只查看最近兩年巴西和加拿大的實際工資。(提示:查詢)。

table=pd.pivot_table(data,index=[u'Country',u'Time'],values=[u'realwage'],aggfunc=[np.mean,remove_Outliers])
a=table.query('Country == ["Brazil","Canada"]')
a.query('Time==["2015/1/1","2016/1/1"]')

在這裏插入圖片描述

5、將每年的實際工資分成四個分位數,並檢查有多少個國家屬於這四個分位數中的一個。只需顯示樞軸表的前8行。(提示:pd.qcut())

quan=pd.qcut(data.realwage,4)
quan.head()

在這裏插入圖片描述

data.drop(columns='realwage',inplace=True)
table1=pd.concat([data,quan],axis=1)
table1.head()

在這裏插入圖片描述

table2=pd.pivot_table(table1,index=['Time','realwage'],values='realwage',aggfunc=['count'])
table2.head(8)

在這裏插入圖片描述

# 按分位點分組統計落在各區間內的樣本點個數,這一功能在實際應用中比較有用。
realwage_quan=pd.qcut(data['realwage'],4)
pd.pivot_table(data, index = ['Time', realwage_quan], values="realwage", aggfunc='count').head(8)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章