程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Pandas創建透視表教程

編輯:Python

本文介紹如何使用Pandas創建透視表(交叉表)。

透視表語法

pd.pivot_table(df, values='col1', index='col2', columns='col3', aggfunc='sum')

下面通過示例進行說明。

創建透視表並進行數據匯總

首先創建示例數據:

import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'position': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
'points': [4, 4, 6, 8, 9, 5, 5, 12]})
#view DataFrame
print(df)
# team position points
# 0 A G 4
# 1 A G 4
# 2 A F 6
# 3 A F 8
# 4 B G 9
# 5 B F 5
# 6 B F 5
# 7 B F 12

下面創建透視表,按team和position匯總points值:

#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position', aggfunc='sum')
#view pivot table
print(df_pivot)
# position F G
# team
# A 14 8
# B 22 9

從輸出結果可以看到:

  • A組F位置運動員總分為14
  • A組G位置運動員總分為8
  • B組F位置運動員總分為22
  • B組G位置運動員總分為9

另外還可以通過margins參數進行透視表的邊緣計算:

#create pivot table with margins
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position',
aggfunc='sum', margins=True, margins_name='Sum')
#view pivot table
print(df_pivot)
position F G Sum
team
A 14 8 22
B 22 9 31
Sum 36 17 53

從結果可以看到分別增加行和列的求和。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved