python資料分組和資料透視表

2021-10-02 14:17:31 字數 3637 閱讀 9395

'''

資料分組:根據乙個或多個鍵將資料分成若干組,然後對分組後的資料分別進行彙總計算,並將彙總計算後的結果進行合併,被

用作彙總計算的函式成為聚合函式。

python中對資料進行分組利用的是groupby()函式

'''# 分組鍵是列名

import pandas as pd;

df = pd.read_excel(

'/users/caizhengjie/desktop/資料4.xlsx'

)print

(df)

# 按照一列進行分組

# count函式只是對資料進行了計數運算

print

(df.groupby(

'客戶分類'

).count())

# 對資料求和

print

(df.groupby(

'客戶分類').

sum())

# 按照多列進行分組

print

(df.groupby(

['客戶分類'

,'區域'])

.count())

# 對分組後的資料求和

print

(df.groupby(

['客戶分類'

,'區域'])

.sum()

)# 單列

print

(df.groupby(

'客戶分類')[

'使用者id'

].count())

# 分組鍵是series

print

(df[

'客戶分類'])

# 按照乙個series進行分組

print

(df.groupby(df[

'客戶分類'])

.count())

# 按照多個series進行分組,對分組後的資料求和

print

(df.groupby(

[df[

'客戶分類'

],df[

'區域']]

).sum())

# 單列

print

(df.groupby(df[

'客戶分類'])

['使用者id'

].count())

# 神奇的aggregate方法:第乙個神奇之處,一次可以使用多種彙總方式

print

(df.groupby(

'客戶分類'

).aggregate(

['count'

,'sum'])

)# 第二個神奇之處,可以針對不同的列做不同的彙總運算

print

(df.groupby(

'客戶分類'

).aggregate())

# 對分組後的結果重置索引

print

(df.groupby(

'客戶分類').

sum())

print

(df.groupby(

'客戶分類').

sum(

).reset_index(

))

'''

資料透視表:是在行,列上同時拆分

python中資料透視表的方法是pivit_table()方法

pivit_table()方法引數如下:

pivit_table(data,values = none,index = none,columns = none,aggfunc = 'mean',fill_value = none,margins = false,dropna = true, margins_name = 'all)

data:表示要做資料透視表的整個表

values:對應excel中值的那個框

index:對應excel中值的那個框

columns:對應excel中值的那個框

aggfunc:表示對values的計算型別

fill_value:表示對空值的填空值

margins:表示是否顯示合計列

dropna:表示是否刪除缺失,如果為真時,則把一整行全作為缺失值刪除

margins_name:表示合計列的列名

'''import pandas as pd;

df = pd.read_excel(

'/users/caizhengjie/desktop/資料4.xlsx'

)print

(df)

# 將客戶分類作為index,區域作為columns,使用者id作為values,對values執行count運算

print

(pd.pivot_table(df,values=

'使用者id'

,index=

'客戶分類'

,columns=

'區域'

,aggfunc=

'count'))

# 顯示合計列

print

(pd.pivot_table(df,values=

'使用者id'

,index=

'客戶分類'

,columns=

'區域'

,aggfunc=

'count'

,margins=

true))

# margins_name合計列的列名修改

print

(pd.pivot_table(df,values=

'使用者id'

,index=

'客戶分類'

,columns=

'區域'

,aggfunc=

'count'

,margins=

true

,margins_name=

'總計'))

# 通過fill_value對空值的填空值

print

(pd.pivot_table(df,values=

'使用者id'

,index=

'客戶分類'

,columns=

'區域'

,aggfunc=

'count'

,margins=

true

,margins_name=

'總計'

,fill_value=0)

)# aggfunc示對values的計算型別

print

(pd.pivot_table(df,values=

['使用者id'

,'7月銷量'

],index=

'客戶分類'

,columns=

'區域'

,aggfunc=

,margins=

true

,margins_name=

'總計'))

# 對透視表的結果重置索引

print

(pd.pivot_table(df,values=

'使用者id'

,index=

'客戶分類'

,columns=

'區域'

,aggfunc=

'count'

).reset_index(

))

excel中使用Vlookup和資料透視表

雖然不經常用excel做資料篩選操作,但是偶爾還是會有這種需求,每次來都是去科普,沒往心裡記,這次索性做個記錄,以後有什麼excel計算的場景直接看自己的案例更清晰。例如有excel表內原始資料 在sheet1內 如下 由於某些情況,你將某些發生異常的訂單給拉了出來,但是你只知道訂單號,這個金額由於...

資料透視表

源明 資料透視表 的用法,他們總問俺 錦繡 又是那個怪怪的 資料透視表 源明 什麼怪怪的,上次不是給你說了,它的用途可大了,尤其是統計一些資料的時候,不用函式就能實現,有人從這些分析中能賺著大錢呢 錦繡 可是有點兒複雜,你知道唄,俺就奇怪你們學理科的人,寫出的東西又枯燥又難懂,俺就學不會,源明 所以...

資料透視表

寫在前面 最近給自己立下乙個任務 掌握excel中的資料透視表 vlookup,如果還有餘力可以再掌握其vba基礎。而因為已經具備程式設計基礎,所以我認為學習vba應該也不是什麼難事,前兩種的話,希望可以達到在簡歷上寫 熟練使用excel中的資料透視表 vlookup 而一點都不心虛,把能力扎扎實實...