需要把执行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]]