1、透視表 pivot table
其中,pd.pivot_table(data,values=none,index=none,columns=none,aggfunc='mean'
,fill_value=none,margins=false,dropna=true,margins_name='all')
data:dataframe物件
values:要聚合的列或列的列表
index:資料透視的index,從原始資料的列中篩選
columns:資料透視表的columns,從原始資料的列中篩選
aggfunc:用於聚合的函式,預設為numpy,mean,支援numpy計算方法
輸出結果:import numpy as np
import pandas as pd
date = ['2019-1-1','2019-1-2','2019-1-3']*3
date_time = pd.to_datetime(date)
df = pd.dataframe()
print('------------原資料------------')
print(df)
print('------------透視表1------------')
#也可以aggfunc='sum'
print(pd.pivot_table(df,values = 'values',index = ['date'],columns='key',aggfunc=np.sum))
print('------------透視表2------------')
#分別以date,key共同做資料透視,值為values:統計不同(date,key)情況下values的計數
#aggfunc=len(或者count):計數
print(pd.pivot_table(df,values = 'values',index = ['date','key'],aggfunc=len))
2、交叉表:crosstab------------原資料------------
date key values
0 2019-01-01 a 6.372699
1 2019-01-02 b 0.649605
2 2019-01-03 c 4.897285
3 2019-01-01 d 7.758373
4 2019-01-02 a 1.576888
5 2019-01-03 b 8.217029
6 2019-01-01 c 5.454403
7 2019-01-02 a 5.072132
8 2019-01-03 b 2.875602
------------透視表1------------
key a b c d
date
2019-01-01 6.372699 nan 5.454403 7.758373
2019-01-02 6.649020 0.649605 nan nan
2019-01-03 nan 11.092630 4.897285 nan
------------透視表2------------
values
date key
2019-01-01 a 1.0
c 1.0
d 1.0
2019-01-02 a 2.0
b 1.0
2019-01-03 b 2.0
c 1.0
預設情況下,crosstab計算因子的頻率,比如用於str的資料透視分析
pd.crosstab(index,columns,values=none,rownames=none
,colnames=none,aggfunc=none,margins=false,dropna=true,normalize=false)
輸出結果:import numpy as np
import pandas as pd
df = pd.dataframe()
print('------------原資料------------')
print(df)
#如果crosstab只接收兩個series,他將提供乙個頻率表
#用a的唯一值,統計b唯一值的出現次數 (a,b)= (1,3)c出現了1次 (a,b)= (2,4)出現了3次
print('------------交叉表1------------')
print(pd.crosstab(df['a'],df['b']))
print('------------交叉表2------------')
print(pd.crosstab(df['a'],df['b'],normalize=true))#以頻率的方式顯示
print('------------交叉表3------------')
print(pd.crosstab(df['a'],df['b'],values=df['c'],aggfunc=np.sum))#values:根據因子聚合的值陣列
#aggfunc:如果未傳遞values陣列,則計算頻率表,如果傳遞陣列,則按照指定計算
#這裡相當於以a和b界定分組,計算出每組中第三個系列c的值
print('------------交叉表4------------')
print(pd.crosstab(df['a'],df['b'],values=df['c'],aggfunc=np.sum,margins=true))
#margins:布林值,預設值false,新增行/列邊距(小計)
------------原資料------------
a b c
0 1 3 1.0
1 2 3 1.0
2 2 4 nan
3 2 4 1.0
4 2 4 1.0
------------交叉表1------------
b 3 4
a
1 1 0
2 1 3
------------交叉表2------------
b 3 4
a
1 0.2 0.0
2 0.2 0.6
------------交叉表3------------
b 3 4
a
1 1.0 nan
2 1.0 2.0
------------交叉表4------------
b 3 4 all
a
1 1.0 nan 1.0
2 1.0 2.0 3.0
all 2.0 2.0 4.0
資料透視表
源明 資料透視表 的用法,他們總問俺 錦繡 又是那個怪怪的 資料透視表 源明 什麼怪怪的,上次不是給你說了,它的用途可大了,尤其是統計一些資料的時候,不用函式就能實現,有人從這些分析中能賺著大錢呢 錦繡 可是有點兒複雜,你知道唄,俺就奇怪你們學理科的人,寫出的東西又枯燥又難懂,俺就學不會,源明 所以...
資料透視表
寫在前面 最近給自己立下乙個任務 掌握excel中的資料透視表 vlookup,如果還有餘力可以再掌握其vba基礎。而因為已經具備程式設計基礎,所以我認為學習vba應該也不是什麼難事,前兩種的話,希望可以達到在簡歷上寫 熟練使用excel中的資料透視表 vlookup 而一點都不心虛,把能力扎扎實實...
資料透視表
恢復 ctrl y 全選 單擊左右翻頁箭頭按住shift鍵 一,透視表基本用法 選中製表單元格 插入資料透視表 拖動 月,部門,發生額 更改統計方法 單擊左上角計數項 求和,平均值,最大值 單擊右鍵 選擇值欄位數值 雙擊單元格看明細 二,更改時間單位 選中 插入 資料透視表 拖拽訂購日期 選中任意時...