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

Python輪播圖只出現一個年份的

編輯:Python

數據

import requestsfrom bs4 import BeautifulSoupimport csvimport pandas as pd#通過requests請求到電影票房的頁面text = requests.get(url="http://www.piaofang.biz/")text.encoding = text.apparent_encoding#print(text.text)#通過BeautifulSoup解析:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple beautifulsoup4main_page = BeautifulSoup(text.text,"html.parser")#html的解析器#找到tabletable = main_page.find("table")#f = open("電影票房.csv",mode="w",encoding='utf-8',newline="")trs = table.find_all("tr")#拿到每一個trfor tr in trs: lst = tr.find_all("td")#找到每一個td if len(lst) != 0: for td in lst: # print(td.text) f.write(td.text.strip().replace(',','').strip().replace('$',''))#strip默認去掉左右兩邊的空白,replace替換數據中的逗號 f.write(',') f.write("\n")f.close()

數據分析加畫圖

import numpy as npimport pandas as pdfrom pyecharts import options as optsfrom pyecharts.charts import Pie,Bar,Timeline###數據提取data = pd.read_csv("電影票房.csv",encoding = 'utf-8',header=None)# print(data)#那到1,2中的數據data = data.loc[:, [2,3]] #逗號前面的是行,表示都要 後面的表示是列,只要3.5 loc[:, 1:4] 1-4列出現# print(data)#拆分類別數據def func1(item): #/前面的類別 #把類別單獨拎出來,數據處理 return item.split('/')[0]#切割類別def func2(item): #/後面的類別 #把類別單獨拎出來,數據處理 if "/" in item: return item.split("/")[1]#切割類別 else: return "lxy"data[6] = data[3].map(func1) #將多出的類別在起一列 後面的是原本的列data[7] = data[3].map(func2)# print(data)#把數據拆分開data_1 = data.loc[:, [2, 6]]data_2 = data.loc[:, [2, 7]]data_2 = data_2.loc[data_2[7] != 'lxy']#將data_2中所有’lxy‘的數據刪除data_2 = data_2.rename(columns={
7:6}) #將data_2中的第七列重新命名為6,防止合並出現nan# print(data_1)# print(data_2)# data = data_1.append(data_2)data = pd.concat([data_1,data_2])#合並# print(data)#計算每一種類型的票房的平均值data = data.groupby([2,6]).size().reset_index()#以第六列為組進行計算,取消year1為默認列#列數重命名data.columns = ["year","類型","類型總數"]# resp = data[data['year']==1982][['類型','類型總數']]\# .sort_values(by='類型總數',ascending=True).values.tolist() #不包括第一列## print(resp)#保存處理好的數據# data.to_csv('年份.csv')####畫圖#時間序列timeline = Timeline()#播放設置:設置時間間隔 1s 1s=1000mstimeline.add_schema(play_interval=1000)#毫秒for year in data['year'].unique(): resp = ( data[data['year']==year][['類型','類型總數']] .sort_values(by='類型總數',ascending=False) .values.tolist() )# print(year)#繪制柱狀圖bar = Bar()#x軸bar.add_xaxis([x[0] for x in resp])#y軸bar.add_yaxis('',[x[1] for x in resp])#讓柱狀圖橫著放bar.reversal_axis()#將計數的標簽放在圖形的右邊bar.set_series_opts(label_opts=opts.LabelOpts(position='right'))#設置下圖標的名稱bar.set_global_opts(title_opts=opts.TitleOpts(title='全球電影1982-2021 類型統計'))#將設置好的bar對象放置到輪播圖中,並且標簽選擇年份timeline.add(bar,f'{year}年')#將設置好的圖標保存為HTMLtimeline.render('year.html')

為什麼只出來2021年的數據,該加什麼


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