香港金曲奖分析(1983-2017 by SIRMAN)

    以前的金曲奖就是华语音乐的代表,特别是80、90年代,谭张争霸,四大天王等,虽然近来影响力已不如之前,但让我们来看看1983-2017的获奖名单。数据来源于百度百科“十大劲歌金曲颁奖典礼”,由于名单较多,我们只选取了前20位进行图形化展视。可能有些奖项由于个人原因没有参加,例如谭咏麟87年之后未参加颁奖,张国荣更是89-97退出歌坛等,但从这些结果仍然可能与大家想象的不太一样:1)最受欢迎男歌星,张学友只有1次获奖,张敬轩、古巨基各有4次获奖,歌神有点委曲哈;2)最受欢迎女歌星,容祖儿12次获奖可以说是一枝独秀,像王菲仅有2次获奖,差距确实有点大;3)金曲金奖,这一次歌神张学友终于获得最多的4次,但大众情人刘德华1次没有,也是出乎大家意料;4)金曲奖,也是容祖儿拨得头筹,这一次天王刘德华终于站在了第一梯队(注:金曲奖每届有10-20首,而金曲金奖每届只有1首);5)最佳作曲奖,不是太熟悉,但像黄沾这样的大佬我们还是知道的;6)最佳填词奖,这个和大家预期一样,林夕以10次遥遥领先;7)最佳编曲奖,这个还不如最佳作曲奖的名字熟悉;8)总次数,是指示所有奖项中出现名字相加(不局限于以上7个奖项),容祖儿在奖项上的强大优势折桂。

具体分析(代码及图片)如下,首先抓取数据

#从百度百科获取数据
def get_data():url = "https://baike.baidu.com/item/%E5%8D%81%E5%A4%A7%E5%8A%B2%E6%AD%8C%E9%87%91%E6%9B%B2%E9%A2%81%E5%A5%96%E5%85%B8%E7%A4%BC/477072?fr=aladdin"#pandas直接获取url数据,并设置第0行为列标题html_text = pd.read_html(url, encoding="utf-8", header=0) #将数据存入列表lst global lst   lst = []for i in range(0,37):lst.append(html_text[i])   

一、最受欢迎男歌星获奖次数统计

#历届大奖,最受欢迎男歌星
def man_lijiedajiang():#获取历届大奖的数据pd_data = pd.DataFrame(lst[1])# print(pd_data)#写入oracle,表名需要小写pd_data.to_sql('历届大奖', engine, if_exists='replace', index=True, \dtype={'年度': sqlalchemy.types.NVARCHAR(50),\'届次': sqlalchemy.types.String(length=50),\'最受欢迎男歌星': sqlalchemy.types.String(50),\'最受欢迎女歌星':  sqlalchemy.types.String(length=50),\'金曲金奖':  sqlalchemy.types.String(length=50),\})#查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 最受欢迎男歌星 as 最受欢迎男歌星,count(*) as 次数 \from 历届大奖 group by 最受欢迎男歌星 \order by 次数 desc,最受欢迎男歌星 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)#取出的数据只保留前20行df = m_data[0:20]# print('最受欢迎男歌星',df)#画图,直方图,x轴标签为列“最受欢迎男歌星”df.plot(kind="bar",x='最受欢迎男歌星',title='最受欢迎男歌星获奖次数')#保存为图片,也可保存为pdfplt.savefig('最受欢迎男歌星.png', dpi=300)

输出
在这里插入图片描述
二、最受欢迎女歌星获奖次数统计

#历届大奖,最受欢迎女歌星
def woman_lijiedajiang():#查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 最受欢迎女歌星 as 最受欢迎女歌星,count(*) as 次数 \from 历届大奖 group by 最受欢迎女歌星 \order by 次数 desc,最受欢迎女歌星 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)#取出的数据只保留前13行df = m_data[0:20]# print('最受欢迎女歌星',df)#画图,直方图,x轴标签为列“最受欢迎男歌星”df.plot(kind="bar",x='最受欢迎女歌星',title='最受欢迎女歌星获奖次数')#保存为图片,也可保存为pdfplt.savefig('最受欢迎女歌星.png', dpi=300)

输出
在这里插入图片描述
三、金曲金奖获奖次数统计

#历届大奖,金曲金奖
def jinquJJ_lijiedajiang():#查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 金曲金奖, count(*) as 次数 \from (select substr(金曲金奖,instr(金曲金奖,'》',-1,1)+1) as 金曲金奖  from 历届大奖) \group by 金曲金奖 order by 次数 desc,金曲金奖 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)#取出的数据只保留前13行df = m_data[0:20]# print('金曲金奖',df)#画图,直方图,x轴标签为列“金曲金奖”df.plot(kind="bar",x='金曲金奖',title='金曲金奖获奖次数')#保存为图片,也可保存为pdfplt.savefig('金曲金奖.png', dpi=300)

输出
在这里插入图片描述
四、金曲奖获奖次数统计(注:金曲奖每届有10-20首,而金曲金奖每届只有1首)

#获奖名单,金曲
def jinqu_huojiangmingdan():#为了for循环下不会累积数据,每次for循环前先删除表cursor = db.cursor()   # 获取游标,用于进行 SQL 操作#如果存在table'获奖名单',则先删除str_sql = "declare \num   number; \begin \select count(1) into num from all_tables where TABLE_NAME = '获奖名单' and OWNER='ZCK'; \if   num=1   then \execute immediate 'drop table 获奖名单'; \end   if; \end;"cursor.execute(str_sql)cursor.close()  # 关闭游标db.close()  # 关闭数据库#将lst里面的列表数据取出,并写入到数据库,table为'获奖名单' for i in range(2,36):pd_data = pd.DataFrame(lst[i])# print(pd_data)pd_data.to_sql('获奖名单', engine, if_exists='append', index=True, \dtype={'奖项名称': sqlalchemy.types.String(500),\'获奖人及作品': sqlalchemy.types.String(500),              })     #查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',1,1)+1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%劲歌金曲奖%' and 获奖人及作品 like '%、%') \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%劲歌金曲奖%' and 获奖人及作品 like '%、%')) \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品 \from 获奖名单 WHERE 奖项名称 LIKE '%劲歌金曲奖%'and 获奖人及作品 not LIKE '%、%') \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)# 取出的数据只保留前20行df = m_data[0:20]# print('获奖名单',df) # SQL选出“次数”中值最大值,作为y轴标签最大值sql_yticks = "select max(次数) from \(select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',1,1)+1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%劲歌金曲奖%' and 获奖人及作品 like '%、%') \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%劲歌金曲奖%' and 获奖人及作品 like '%、%')) \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品 \from 获奖名单 WHERE 奖项名称 LIKE '%劲歌金曲奖%'and 获奖人及作品 not LIKE '%、%') \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC)"# pandas读出“次数”中值最大值data_yticks = pd.read_sql(sql_yticks,engine)  # 值类型转换  int_ticks = data_yticks["MAX(次数)"].astype("int")  # print(type(int_ticks))  # 生成y轴标签yticks = list(range(1,int(int_ticks)+1,1))       #画图,直方图,x轴标签为列“获奖名单”ax = df.plot(x='获奖人及作品', kind="bar", title='金曲获奖次数', yticks=yticks,color='red')ax.set_ylabel('获奖次数') #设置Y轴名称ax.set_xlabel('名字') #设置X轴名称ax.legend(loc='upper right') #设置图例的位置plt.gcf().subplots_adjust( bottom=0.2) #图形居画布边距#保存为图片,也可保存为pdfplt.savefig('金曲获奖名单.png', dpi=300)

输出
在这里插入图片描述
五、最佳作曲奖获奖次数统计

#获奖名单,最佳作曲奖
def zuoqu_huojiangmingdan():    #查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳作曲奖%'and 获奖人及作品 not LIKE '%、%')  \union all \select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳作曲奖%' and 获奖人及作品 like '%、%') \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳作曲奖%'and 获奖人及作品 LIKE '%、%'))) \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)# print(m_data)# 取出的数据只保留前20行df = m_data[0:20]# print('最佳作曲奖',df) # SQL选出“次数”中值最大值,作为y轴标签最大值sql_yticks = "select max(次数) from \(select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳作曲奖%'and 获奖人及作品 not LIKE '%、%')  \union all \select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳作曲奖%' and 获奖人及作品 like '%、%') \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳作曲奖%'and 获奖人及作品 LIKE '%、%'))) \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC)"# pandas读出“次数”中值最大值data_yticks = pd.read_sql(sql_yticks,engine)  # 值类型转换  int_ticks = data_yticks["MAX(次数)"].astype("int")  # print(type(int_ticks))  # 生成y轴标签yticks = list(range(1,int(int_ticks)+1,1))       #画图,直方图,x轴标签为列“获奖名单”ax = df.plot(x='获奖人及作品', kind="bar", title='最佳作曲奖', yticks=yticks,color='red')ax.set_ylabel('获奖次数') #设置Y轴名称ax.set_xlabel('名字') #设置X轴名称ax.legend(loc='upper right') #设置图例的位置plt.gcf().subplots_adjust( bottom=0.2) #图形居画布边距#保存为图片,也可保存为pdfplt.savefig('最佳作曲奖.png', dpi=300)

输出
在这里插入图片描述
六、最佳填词奖获奖次数统计

#获奖名单,最佳填词奖
def tianci_huojiangmingdan():    #查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳填词奖%'and 获奖人及作品 not LIKE '%、%') \union all \select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳填词奖%' and 获奖人及作品 like '%、%') \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳填词奖%'and 获奖人及作品 LIKE '%、%'))) \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)# 取出的数据只保留前20行df = m_data[0:20]# print('最佳作曲奖',df) # SQL选出“次数”中值最大值,作为y轴标签最大值sql_yticks = "select max(次数) from \(select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳填词奖%'and 获奖人及作品 not LIKE '%、%') \union all \select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳填词奖%' and 获奖人及作品 like '%、%') \union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳填词奖%'and 获奖人及作品 LIKE '%、%'))) \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC)"# pandas读出“次数”中值最大值data_yticks = pd.read_sql(sql_yticks,engine)  # 值类型转换  int_ticks = data_yticks["MAX(次数)"].astype("int")  # print(type(int_ticks))  # 生成y轴标签yticks = list(range(1,int(int_ticks)+1,1))       #画图,直方图,x轴标签为列“获奖名单”ax = df.plot(x='获奖人及作品', kind="bar", title='最佳填词奖', yticks=yticks,color='red')ax.set_ylabel('获奖次数') #设置Y轴名称ax.set_xlabel('名字') #设置X轴名称ax.legend(loc='upper right') #设置图例的位置plt.gcf().subplots_adjust( bottom=0.2) #图形居画布边距#保存为图片,也可保存为pdfplt.savefig('最佳填词奖.png', dpi=300)

输出
在这里插入图片描述
七、最佳编曲奖获奖次数统计

#获奖名单,最佳编曲奖
def bianqu_huojiangmingdan():    #查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳编曲奖%'and 获奖人及作品 not LIKE '%、%') \union all \select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳编曲奖%' and 获奖人及作品 like '%、%')\union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品 \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳编曲奖%'and 获奖人及作品 LIKE '%、%'))) \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)# 取出的数据只保留前20行df = m_data[0:20]# print('最佳编曲奖',df) # SQL选出“次数”中值最大值,作为y轴标签最大值sql_yticks = "select max(次数) from \(select 获奖人及作品, count(*) as 次数 from \(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳编曲奖%'and 获奖人及作品 not LIKE '%、%') \union all \select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳编曲奖%' and 获奖人及作品 like '%、%')\union all \select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品 \from (select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品 \from (select * from 获奖名单 t where 奖项名称 LIKE '%最佳编曲奖%'and 获奖人及作品 LIKE '%、%'))) \group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC)"# pandas读出“次数”中值最大值data_yticks = pd.read_sql(sql_yticks,engine)  # 值类型转换  int_ticks = data_yticks["MAX(次数)"].astype("int")  # print(type(int_ticks))  # 生成y轴标签yticks = list(range(1,int(int_ticks)+1,1))       #画图,直方图,x轴标签为列“获奖名单”ax = df.plot(x='获奖人及作品', kind="bar", title='最佳编曲奖', yticks=yticks,color='red')ax.set_ylabel('获奖次数') #设置Y轴名称ax.set_xlabel('名字') #设置X轴名称ax.legend(loc='upper right') #设置图例的位置plt.gcf().subplots_adjust( bottom=0.2) #图形居画布边距#保存为图片,也可保存为pdfplt.savefig('最佳编曲奖.png', dpi=300)

输出
在这里插入图片描述
八、总数统计(包含所有奖项,不局仅于前面列的七个奖项)

#获奖名单,总数统计(包含所有奖项)
def total_huojiangmingdan():    #查询获取数据用sql语句,不要分号,表名如果是英文要小写sql = "select 获奖人及作品, count(*) as 次数 from \(SELECT * FROM\(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 LIKE '%》%'))\WHERE 获奖人及作品 not like '%:%' and 获奖人及作品 not like '%.%' and 获奖人及作品 not like '%《%'\UNION ALL\SELECT * FROM\(select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品  \from (select * from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 LIKE '%》%'))\WHERE 获奖人及作品 not like '%:%' and 获奖人及作品 not like '%.%'\UNION ALL\select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,':',-1,1)+1) as 获奖人及作品\from (select * from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 LIKE '%:%')\UNION ALL\select 奖项名称, 获奖人及作品 from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 not LIKE '%:%'\UNION ALL\select * from(\select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品\FROM (select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品\FROM (select * from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 LIKE '%》%')))\WHERE 获奖人及作品 is not null\UNION ALL\select * from(\select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',-1,1)-1) as 获奖人及作品\FROM (select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品\FROM (select * from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 LIKE '%》%')))\WHERE 获奖人及作品 is not null\UNION ALL\select 奖项名称, 获奖人及作品 from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 LIKE '%:%'\UNION ALL\select 奖项名称, 获奖人及作品 from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 not LIKE '%:%')\group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC"print("从数据库读取前------------------------------")#执行sql语句,从数据库取出数据m_data = pd.read_sql(sql,engine)# 取出的数据只保留前20行df = m_data[0:20]# print('总数统计(包含所有奖项)',df) # SQL选出“次数”中值最大值,作为y轴标签最大值sql_yticks = "select max(次数) from \(select 获奖人及作品, count(*) as 次数 from \(SELECT * FROM\(select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'《',-1,1)-1) as 获奖人及作品  \from (select * from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 LIKE '%》%'))\WHERE 获奖人及作品 not like '%:%' and 获奖人及作品 not like '%.%' and 获奖人及作品 not like '%《%'\UNION ALL\SELECT * FROM\(select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品  \from (select * from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 LIKE '%》%'))\WHERE 获奖人及作品 not like '%:%' and 获奖人及作品 not like '%.%'\UNION ALL\select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,':',-1,1)+1) as 获奖人及作品\from (select * from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 LIKE '%:%')\UNION ALL\select 奖项名称, 获奖人及作品 from 获奖名单 t where 获奖人及作品 not LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 not LIKE '%:%'\UNION ALL\select * from(\select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'、',-1,1)+1) as 获奖人及作品\FROM (select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品\FROM (select * from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 LIKE '%》%')))\WHERE 获奖人及作品 is not null\UNION ALL\select * from(\select 奖项名称,substr(获奖人及作品,1,instr(获奖人及作品,'、',-1,1)-1) as 获奖人及作品\FROM (select 奖项名称,substr(获奖人及作品,instr(获奖人及作品,'》',-1,1)+1) as 获奖人及作品\FROM (select * from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 LIKE '%》%')))\WHERE 获奖人及作品 is not null\UNION ALL\select 奖项名称, 获奖人及作品 from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 LIKE '%:%'\UNION ALL\select 奖项名称, 获奖人及作品 from 获奖名单 t where 获奖人及作品 LIKE '%、%' and 获奖人及作品 not LIKE '%》%' and 获奖人及作品 not LIKE '%:%')\group by 获奖人及作品 order by 次数 desc,获奖人及作品 DESC)"# pandas读出“次数”中值最大值data_yticks = pd.read_sql(sql_yticks,engine)  # 值类型转换  int_ticks = data_yticks["MAX(次数)"].astype("int")  # print(type(int_ticks))  # 生成y轴标签yticks = list(range(1,int(int_ticks)+1,1))       #画图,直方图,x轴标签为列“获奖名单”指定x轴为'获奖人及作品',颜色为'red',尺寸为figsize=(10,10)ax = df.plot(x='获奖人及作品', kind="bar", title='总数统计(包含所有奖项)', yticks=yticks,color='red',figsize=(10,10))ax.set_ylabel('获奖次数') #设置Y轴名称ax.set_xlabel('名字') #设置X轴名称ax.legend(loc='upper right') #设置图例的位置plt.gcf().subplots_adjust( bottom=0.2) #图形居画布边距    #保存为图片,也可保存为pdfplt.savefig('总数统计(包含所有奖项).png', dpi=900)

输出
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57792.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android中Pcm文件转换为Mp3

刚完成了一个pcm转成mp3的小工作,记录下自己解决这个问题的过程,以便以后可以参考。pcm转换mp3首选的就是lame这个开源框架,下载地址lame,下载完成后需要ndk编译lame。安卓ndk环境配置可以百度。下面记录下ndk编译lame的过程 首先…

NCM转MP3神奇的网页

由于毕业演出需要,下了QQ音乐上的一首需要会员的歌,发现是NCM格式,没有办法打开,于是在网上找方法,然后就发现了这个好方便的网页,直接线上转格式!赶紧记下来,以备下次用&#xff01…

使用Lame库实现wav、pcm转mp3

文章目录 前言 一、Lame库是什么? 二、使用步骤 0.创建native项目 1.下载Lame库 2.pcm转MP3 3.wav转MP3 4、native方法如下 三、注意 总结 前言 因为使用android录音后生成的文件是wav或者pcm格式,项目要求最后的文件需要是mp3格式,于…

Android集成LAME库,实现pcm转mp3

一、交叉编译LAME库 LAME是一种非常优秀的MP3编码引擎,在业界,转码成MP3格式的音频文件时,最常用的编码器就是LAME库。 1. 下载LAME库源码 https://sourceforge.net/projects/lame/files/lame/ 进入LAME官网下载LAME源码,我选择…

[opcv图像处理] C/C|++将图片转换为马赛克效果

这个程序将图片转换为马赛克效果。 算法原理:求出每个小方块内所有像素的颜色平均值,然后用来设置为该小方块的颜色。依次处理每个小方块,即可实现马赛克效果。 完整代码如下: / // 程序名称:将图片转换为马赛克效果…

从入门到入土:Python实现爬取网易云歌词|评论生成词云图

写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除) Python实现爬取网易云歌词|评论生成词云图 免责声明…

用python写一个爬取周杰伦所有歌词的爬虫

写一个爬虫爬一下周董的所有歌词看看这么多年他为啥这么火 唱的都是什么主题的歌可以这么经久不衰,他凭啥被称为流行歌曲天王。废话不多说 直接上代码 今天比较晚了 之后再慢慢完善讲解。代码比较low因为是编自学边完成的,所以只是实现了基本的功能&…

buuoj 来首歌吧 writeup

题目(二十三): 【题型】Misc 【题目】来首歌吧 【来源】(buuoj)https://buuoj.cn/challenges#%E6%9D%A5%E9%A6%96%E6%AD%8C%E5%90%A7 【思路】通过音频的节奏得出摩斯密码,得到flag。 【具体步骤】 Step1&a…

chatgpt赋能python:Python打折代码:为你的电商网站提供更便捷的价格管理工具

Python打折代码:为你的电商网站提供更便捷的价格管理工具 在当前这个竞争激烈的市场,随时提供大量的优惠促销活动是吸引消费者注意力和提高销售额的必要手段之一。而电商网站在进行促销活动时,一个鲜为人知的秘密是——打折代码。打折代码作…

利用Python实现有道翻译的功能

这是上学期在Python课堂上老师讲的利用Python实现有道翻译的功能。 流程如下:网址:有道翻译 输入翻译名称,按F12对网页进行分析,通过查询到translate开头的连接中我们找到了翻译的数据参数 首先将参数以urlencode编码的方式传入到…

中英文自动翻译(有道翻译、彩云小译)

一.有道翻译 1)获取应用ID 和 应用密钥 https://ai.youdao.com/doc.s#guide 2)遵循接口参数接入 具体参考接口文档:https://ai.youdao.com/DOCSIRMA/html/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E7%BF%BB%E8%AF%91/API%E6%96%87%E6%A1%A3/…

Unity 接入有道智云AI - 文本翻译

接入接口前首先需要申请应用ID和应用秘钥,登录有道智云AI开放平台,创建应用,获取应用ID和秘钥。 定义接口响应类数据结构,接口实际返回内容和官方文档有点出入,大概是文档未更新吧。 以下是官方文档给出的说明&#x…

【Python爬虫】有道翻译新旧API接口

🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。 前言: 🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~ ✨个…

Translate插件的有道翻译

在plugins下载Translate插件 setting-> Tools->Translation 没有id和密钥就申请注册 登录后 创建应用 创建成功后输入id和密钥 点击鼠标右键即可使用 翻译效果 over

python利用有道词典翻译_Python利用有道词典接口制作即时翻译的工具

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于Python 实用宝典,作者Python 实用宝典 前言 在编程时经常会遇到需要将中文词汇翻译成英文的情况。 比如变量名的定义、取一个合…

如何用python“优雅的”调用有道翻译

文章目录 前言分析分析url分析参数01分析参数02加密分析 模拟请求注意点请求代码执行结果 结语 前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译&…

Python 调用有道的翻译接口

最近为了熟悉一下 js 用有道翻译练了一下手,写一篇博客记录一下,也希望能对大家有所启迪,不过这些网站更新太快,可能大家尝试的时候会有所不同。 首先来看一下网页 post 过去的数据 大家不难发现,我们翻译的内容是…

使用python打造一个中英互译软件(基于有道翻译)

(本博客简洁明了,适合小白入门) 首先明确整体构架: 1.爬虫部分 2.界面部分 3.打包 涵盖的库: import urllib.request import urllib.parse import json import tkinter as tk import tkinter.messagebox 先确定爬…

ubuntu最好用的划词翻译词典:有道词典和GoldenDict

目录 1、安装有到词典 2、安装GoldenDict 3、GoldenDict的一些简单配置以及相关bug修改 用惯了Windows下的有道词典,其划词翻译功能用起来令人极其舒适~Ubuntu系统中也有有道词典以及一个类似的类似的软件GoldenDict,下面就分别介绍下这两…

有道翻译接口 破解

有道翻译 API 最近有些任务需要将中文翻译成英文,由于个人英文水平问题,每次都要打开好几个在线翻译网页,一句一句的丢进去,取最佳者为所用,甚是麻烦。 任务完成之后,就稍微研究了一下各个翻译接口&#…