dataframe执行数据透视pivot_table后拍平列名称

 

需要把执行pivot_table后生成的结果转换为数组。

import pymysql
import pandas as pd
import numpy as np
from pyecharts.options import ComponentTitleOpts
from pyecharts.charts import Tab
from pyecharts.components import Table

# 创建连接
# def get_df():
db = pymysql.connect(host='localhost', port=3306, user='******', passwd='******', db='ultrax', charset='utf8')
# 创建游标
cursor = db.cursor()
sql = 'SELECT `c_zkc`,`c_ds`,`c_tls`,`c_mz` FROM pre_cat_zmshdsq'
cursor.execute(sql)
result = cursor.fetchall()
# 关闭连接
db.close()

#执行结果转化为dataframe
df = pd.DataFrame(result)
df.rename(columns={0:u"主客场",1:u"对手",2:u"投篮数",3:u"命中"}, inplace=True)

df_pvt = pd.pivot_table(df,index=[u"主客场",u"对手"],
						values=[u"投篮数",u"命中"],
						columns=[],
						aggfunc={u"投篮数":np.mean,u"命中":np.sum},
						fill_value=0,
						margins=1)

print(df_pvt.columns)
print(df_pvt)
rows1 = df_pvt.values
print(rows1)

数据结果不完整。

Index(['命中', '投篮数'], dtype='object')
          命中    投篮数
主客场 对手             
主   76人    8  21.00
    小牛    10  19.00
    尼克斯   12  27.00
    掘金     6  16.00
    步行者    8  22.00
    灰熊    19  22.50
    爵士    19  25.00
    猛龙     8  25.00
    篮网    13  20.00
    骑士     8  21.00
    鹈鹕     8  16.00
客   76人   10  20.00
    勇士    10  23.00
    国王     8  21.00
    太阳    12  22.00
    尼克斯    9  23.00
    开拓者   16  29.00
    步行者    9  21.00
    湖人    13  22.00
    灰熊    15  19.50
    爵士     8  19.00
    老鹰     8  15.00
    黄蜂     8  18.00
All      245  21.16
[[  8.    21.  ]
 [ 10.    19.  ]
 [ 12.    27.  ]
 [  6.    16.  ]
 [  8.    22.  ]
 [ 19.    22.5 ]
 [ 19.    25.  ]
 [  8.    25.  ]
 [ 13.    20.  ]
 [  8.    21.  ]
 [  8.    16.  ]
 [ 10.    20.  ]
 [ 10.    23.  ]
 [  8.    21.  ]
 [ 12.    22.  ]
 [  9.    23.  ]
 [ 16.    29.  ]
 [  9.    21.  ]
 [ 13.    22.  ]
 [ 15.    19.5 ]
 [  8.    19.  ]
 [  8.    15.  ]
 [  8.    18.  ]
 [245.    21.16]]
 

处理一下字段名称。

df_pvt.columns = df_pvt.columns.tolist()
df_pvt.reset_index(inplace=True)
print(df_pvt.columns)
print(df_pvt)
rows1 = df_pvt.values
print(rows1)

Index(['主客场', '对手', '命中', '投篮数'], dtype='object')
    主客场   对手   命中    投篮数
0     主  76人    8  21.00
1     主   小牛   10  19.00
2     主  尼克斯   12  27.00
3     主   掘金    6  16.00
4     主  步行者    8  22.00
5     主   灰熊   19  22.50
6     主   爵士   19  25.00
7     主   猛龙    8  25.00
8     主   篮网   13  20.00
9     主   骑士    8  21.00
10    主   鹈鹕    8  16.00
11    客  76人   10  20.00
12    客   勇士   10  23.00
13    客   国王    8  21.00
14    客   太阳   12  22.00
15    客  尼克斯    9  23.00
16    客  开拓者   16  29.00
17    客  步行者    9  21.00
18    客   湖人   13  22.00
19    客   灰熊   15  19.50
20    客   爵士    8  19.00
21    客   老鹰    8  15.00
22    客   黄蜂    8  18.00
23  All       245  21.16
[['主' '76人' 8 21.0]
 ['主' '小牛' 10 19.0]
 ['主' '尼克斯' 12 27.0]
 ['主' '掘金' 6 16.0]
 ['主' '步行者' 8 22.0]
 ['主' '灰熊' 19 22.5]
 ['主' '爵士' 19 25.0]
 ['主' '猛龙' 8 25.0]
 ['主' '篮网' 13 20.0]
 ['主' '骑士' 8 21.0]
 ['主' '鹈鹕' 8 16.0]
 ['客' '76人' 10 20.0]
 ['客' '勇士' 10 23.0]
 ['客' '国王' 8 21.0]
 ['客' '太阳' 12 22.0]
 ['客' '尼克斯' 9 23.0]
 ['客' '开拓者' 16 29.0]
 ['客' '步行者' 9 21.0]
 ['客' '湖人' 13 22.0]
 ['客' '灰熊' 15 19.5]
 ['客' '爵士' 8 19.0]
 ['客' '老鹰' 8 15.0]
 ['客' '黄蜂' 8 18.0]
 ['All' '' 245 21.16]]
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值