環球快資訊:歷屆奧運會獎牌排行榜排名 數據整理分享
摘 要在制作動態排序動畫之前,我們看一下數據的整理情況:
a、對第1)種大部分數據的情況,先爬取下來,輸出到excel(1);
b、對第2)種小部分數據的情況,也先爬取下來,輸出到另一個excel(2);
【資料圖】
c、對第3)種個別的,還有第31-32屆的數據,算了,別折騰了,手動復制粘貼到excel(3)吧。
d、最后把這3個excel合并到一個excel,進行數據處理吧。
二、數據處理經過1896-2021歷屆奧運會獎牌榜動態排序系列的數據處理(第二篇),我們得到了a數據:
看到這張數據表,還有以下幾點需要調整:
1、合并3個excel數據;
2、標題、年份列順序調整到名次前;
3、'國家'列名修改為'國家/地區';
4、計算獎牌的合計數量;
5、根據年份,計算各國的獎牌合計數排名。
1)合并DataFrame:concat(),合并函數還有merge、join函數,有興趣可以進入以下鏈接進行學習()
df1 = pd.read_excel("./data/Olympic10.xlsx")df2 = pd.read_excel("./data/Olympic11.xlsx")df3 = pd.read_excel("./data/Olympic12.xlsx")df = pd.concat([df1,df2,df3],axis=0,ignore_index=True,sort=True)2)調賬列順序
columns = ['標題','年份','國家','金牌','銀牌','銅牌']df = pd.DataFrame(df, columns=columns)3)列名修改
df.rename(columns={'國家':'國家/地區'},inplace=True)4)計算獎牌合計
df['合計'] = ''df['合計'] = df['金牌'] + df['銀牌'] + df['銅牌']5)按年份,計算各國的獎牌合計數排名
df['排名'] = df.groupby('年份',axis=0)['合計'].rank(method='first',ascending=False)另外,再對數據進行一些微調
df=df.drop_duplicates(subset=['年份', '國家/地區'], keep='first')df.sort_values(["年份","排名"],inplace=True,ascending=True)#將國家/地區列字符串中的空格都去除df['國家/地區'].replace('\s+','',regex=True,inplace=True) 最終獲得我們的完整數據
df.to_excel("./data/Olympic_final.xlsx")完整代碼如下:
import pandas as pddf1 = pd.read_excel("./data/Olympic10.xlsx")df2 = pd.read_excel("./data/Olympic11.xlsx")df3 = pd.read_excel("./data/Olympic12.xlsx")df = pd.concat([df1,df2,df3],axis=0,ignore_index=True,sort=True)columns = ['標題','年份','國家','金牌','銀牌','銅牌']df = pd.DataFrame(df, columns=columns)df.rename(columns={'國家':'國家/地區'},inplace=True)df['合計'] = ''df['合計'] = df['金牌'] + df['銀牌'] + df['銅牌']df.loc[df['年份']==1894,'年份'] = 1900df=df.drop_duplicates(subset=['年份', '國家/地區'], keep='first')df['排名'] = df.groupby('年份',axis=0)['合計'].rank(method='first',ascending=False)df.sort_values(["年份","排名"],inplace=True,ascending=True)#將國家/地區列字符串中的空格都去除df['國家/地區'].replace('\s+','',regex=True,inplace=True) df.to_excel("./data/Olympic_final.xlsx")輸出結果:
三、動態排序經過一系列的數據處理,終于可以驗證下勞動成果了。完整代碼如下:
import pandas as pdimport randomimport matplotlib.pyplot as pltimport matplotlib.ticker as tickerimport matplotlib.animation as animationfrom IPython.display import HTMLimport matplotlibplt.rcParams['font.sans-serif']=['SimHei'] #顯示中文標簽plt.rcParams['axes.unicode_minus']=False #這兩行需要手動設置#防止動漫內存太大,報錯matplotlib.rcParams['animation.embed_limit'] = 2**128def randomcolor(): colorlist = ['1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'] color ='' for i in range(6): color += random.choice(colorlist) return '#'+ colordf = pd.read_excel(./data/Olympic_final.xlsx")#對地區列表進行去重,分類;area_list1 = set(df['國家/地區'])# color_list用于存放隨機生成顏色代碼個數# 因為后面區域個數 要與顏色個數保持一致,這里用了len函數;color_list =[]for i in range(len(area_list1)): str_1 = randomcolor() color_list.append(str_1) str_1 = randomcolor() #area_list轉化為列表area_list_1 = [i for i in area_list1]#colors表示 所在城市:顏色 一一對應字典形式;colors =dict(zip(area_list_1,color_list))# 用plt加理圖表,figsize表示圖標長寬,ax表示標簽fig, ax = plt.subplots(figsize=(15, 8))#dras_barchart生成current_year這一年各城市人口基本情況;def draw_barchart(current_year): #dff對year==current_year的行,以”合計“降序排序,取前十名; dff = df[df['年份'].eq(current_year)].sort_values(by='合計',ascending = True).tail(10) # 所有坐標、標簽清除 ax.clear() #顯示顏色、城市名字 ax.barh(dff['國家/地區'],dff['合計'],color = [colors[x] for x in dff['國家/地區']]) dx = dff['合計'].max()/200 #ax.text(x,y,name,font,va,ha) # x,y表示位置; # name表示顯示文本; # va,ba分別表示水平位置,垂直放置位置; for i ,(value,name) in enumerate(zip(dff['合計'], dff['國家/地區'])): ax.text(value-dx,i,name,size=18,weight=600,ha ='right',va = 'bottom',color='#777777') ax.text(value+dx,i ,f'{value:,.0f}',size = 14,ha = 'left',va ='center') #ax.transAxes表示軸坐標系,(1,0.4)表示放置位置 ax.text(1,0.4,current_year,transform = ax.transAxes,color ='#777777',size = 46,ha ='right',weight=800) ax.text(0,1.06,'Olympic Medals',transform = ax.transAxes,size=12,color='#777777') #set_major_formatter表示刻度尺格式; ax.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}')) ax.xaxis.set_ticks_position('top') ax.tick_params(axis='x',colors='#777777',labelsize=12) ax.set_yticks([]) #margins表示自動縮放余額; ax.margins(0,0.01) # 設置后面的網格 ax.grid(which='major',axis='x',linestyle='-') #刻度線和網格線是在圖標上方還是下方,True為下方 ax.set_axisbelow(True) ax.text(0,1.15,'歷屆奧運會獎牌排行榜', transform=ax.transAxes,size=24,weight=600,ha='left',va='top') ax.text(1,0,'Officetouch制作',transform = ax.transAxes, size=16,color ='#777777',ha = 'right', bbox = dict(facecolor='white',alpha = 0.8,edgecolor='white')) #取消圖表周圍的方框顯示 plt.box(False)#draw_barchart(2008)#將原來的靜態圖拼接成動畫fig, ax = plt.subplots(figsize=(15, 8))animator = animation.FuncAnimation(fig, draw_barchart, frames=df['年份'].drop_duplicates(),interval = 1000)animator.save("./data/Olympic.gif", writer='pillow')輸出結果:
結 語學習需要耐心和時間的投入,初學的時候可能需要投入比較多的時間和精力,但只要有這樣一個過程,你就會脫胎換骨,一點一滴的積累成就自己。
1、數據采集-爬蟲;
1896-2021歷屆奧運會獎牌動態排序動畫(Python數據分析實戰1)
2、數據處理-數據清洗;
1896-2021歷屆奧運會獎牌榜(Python數據處理)
3、數據動態排序。(本篇文章)
因為奧運數據連續性較差,如果我們分析一些連續性強的數據,如各國人口數據,動態排序的效果會好很多。
標簽:
相關閱讀
-
《普利橋種糧記·秋收篇》第4集 | 雷老虎“過招”人氣主播:這場“靈魂講價”你站誰?
普利橋農民老雷去年種生態大米,從春忙到夏,秋天大豐收開始賣大米,開口要價“20元 斤”,可把來公益...
2023-02-28 -
天天訊息:云南省文化和旅游廳關于2022年-2023年文旅消費券和加油券(第五批次)發放情況的公示
為認真貫徹落實《關于精準做好疫情防控加快旅游業恢復發展的若干政策措施》《云南省關于文旅行業的紓困...
2023-02-28 -
全球快訊:第1順位選梅西!皇馬巨星遭球迷圍攻:不選本澤馬?滾出去
2月28日,法國巴黎的普萊耶爾音樂廳,2022年國際足聯盛典隆重舉行。世界杯冠軍隊長梅西,以52票加冕世界...
2023-02-28 -
世界即時:一加11概念版絕了!全球首發Active CryoFlux微泵主動液冷散熱
一加在MWC2023上發布了一款名為一加11概念版手機,這款手機采用了全球首發的ActiveCryoFlux微泵主動液冷...
2023-02-28 -
15分大勝綠軍!尼克斯豪取6連勝!塔圖姆生涯首次被驅逐,東部第一易主
NBA常規賽鏖戰正酣,5連勝的尼克斯隊坐鎮主場,迎來了3連勝的綠軍的挑戰,全場戰罷,尼克斯隊以109-94爆...
2023-02-28 -
全球微速訊:【代表委員風采】深化生態補償 推進綠色發展——訪全國人大代表,休寧縣鶴城鄉新安源村黨總支書記、村委會主任李發權
六股尖下,寒意猶存。“最近一直在企業、鄉村走訪,把鄉親們好的想
2023-02-28 -
焦點報道:重磅!雄鹿以35億美金估值出售球隊股份 創NBA歷史第二高紀錄
北京時間2月27日,NBA本賽季第2支出售的球隊出爐,根據名記Shams最新報道,雄鹿老板馬克-拉斯里以35億美...
2023-02-28 -
天天熱消息:三星安卓旗艦S23 Ultra續航爆表:2天一充
據數碼媒體neowin報道,本周他們分享了一篇關于GalaxyS23Ultra手機的評測,發現該手機可以實現兩天一充...
2023-02-28
精彩推薦
閱讀排行
相關詞
- 沃爾沃XC90
- 主場作戰的丹佛掘金經過加時苦戰后以134比124險勝了洛杉磯快船
- 喬爾杰維奇提到必須要糾正錯誤才能打出更加優秀的水平
- 在永全國人大代表開展集中視察活動
- 每日訊息!考利斯坦的加盟為內線防守能力不足的火箭隊又增加了一道保障
- 【報資訊】宏杉科技亮相2022中華醫院信息網絡大會,以可信存儲底座守護醫療數據安全
- 41歲的大奉先傷缺9個月又回來了職業生涯已經征服歐美兩大聯賽
- 104-113!這就是馬克西和梅爾頓的區別,76人隊首發之爭已有答案
- 每日熱點:威少新下家!公牛欲賣隊員以示誠意,主力拉文疑似不滿據
- 全球資訊:3月28日后,霉運驅散,喜事連連,3生肖大豐收
- 全球要聞:重慶涪陵:科技助力春耕 為糧食穩產打下基礎
- 天天觀察:平谷一名七旬老人獨自看望兒女卻迷了路,路邊求助消防員
- 天天短訊!寧夏:罕見病義診讓更多患者得到有效治療
- 環球信息:為人民發聲 為時代放歌
- 【天天新視野】成科機電擬闖關北交所,已完成輔導備案工作
- 【環球報資訊】春耕備耕|良田種糧 穩產增收——內蒙古巴彥淖爾春播見聞
- 聚焦:賽季報銷!廣東宏遠運氣太差,CBA三階段再折大將,杜鋒遺憾
- 全球熱頭條丨蘋果換電池明天漲價!要換的抓緊了
- 播報:西安泰金完成IPO輔導備案,輔導券商為中信建投證券
- 環球播報:預防春季流感等高發病,專家提醒注意這幾點
- 全球熱點!“夫妻檔”“父子兵”“女狀元”——宜春種糧能人的“春耕愿景”
- 全球即時:摔角動態凱文·歐文斯劍指世界重量級冠軍頭銜
- 天天速讀:豐田剎車門事件詳情(豐田剎車門事件)
- NBA常規賽中掘金在主場通過加時戰勝快船
- 五合鄉帕連,一個紅巖子下的村莊
- 熱消息:skulk
- 當前短訊!詹姆斯帶領湖人隊在達拉斯完成大逆轉
- 天天熱文:昆明這所一級完中已拆除完畢,即將原址重建
- NBA官方更新了湖人27分逆轉獨行俠的防守數據
- 天天速遞!老饕品魚吸口鮮魚刺入肚害斷腸
- 轉會1+1:英超升班馬與藍軍爭巴薩小將保級隊有意爭馬競邊緣人
- 冷空氣難擋回暖大趨勢,江南等地開啟入春進程
- 手機沉迷催生鄉村“新問題少年”
- 公安機關常態化掃黑除惡斗爭去年打掉涉黑組織160余個
- 快看點丨睡得好可延年益壽 數據來說話
- 「省運會動態」首次設立!沖浪比賽亮相省運會
- 【聚看點】清潔能源服務商艾能聚登陸北交所,開盤上漲50.50%
- 梅西7金球+7先生致敬C羅?CR7昔日采訪被扒出,球王替他實現愿望
- 要聞速遞:甬溫線特別重大鐵路交通事故新聞發布會(甬溫線特別重大鐵路交通事故)
- 每日看點!人民公安報:普洱筑牢校園交通安全防線
- 世界信息:遠離五大用藥誤區,記住四項用藥原則
- 環球消息!勇士最后時刻接連3次發球失誤險些葬送勝利
- “全生命教育”并非可有可無
- 【環球快播報】“開屏廣告難關閉” “無提醒自動續費” ?工信部出手!
- NBA常規賽繼續進行洛杉磯湖人隊28勝32負
- 開拓者在主場大勝火箭達米利拉德上演精彩得分秀
- 【全球報資訊】摔角動態奧斯丁望高柏回歸 談羅曼重走他的套路
- 天天頭條:什么的鼓勵(什么的鼓勵填空四字)
- 世界熱頭條丨全面突襲(全面突襲2:暴徒) 酸性戰略行動
- 我倆太不公平是什么歌(我倆太不公平是什么歌曲)
- 今亮點!渡劫劇情攻略(夢幻西游渡劫劇情攻略)不會的快學起來
- 【環球時快訊】什么是競技體操(藝術體操和競技體操有什么區別)
- 全球短訊!2023年上半年,財運火爆,生肖三人走出困境,過上成功的生活!
- 少年沒有烏托邦是什么意思(烏托邦的意義)
- 本報報道引起廣泛關注讓愛不再罕見讓你不再孤單
- 當前觀點:柏拉圖和蘇格拉底(蘇格拉底與柏拉圖的五個故事)
- 當前關注:電動機型號(電機型號參數大全)一起來了解下吧
- 全球新資訊:五音十二律(中國古代五聲音階的五個音符)
- 全球熱消息:3-0,歐冠亞軍隊復仇,被轟19腳,姆總梅西不同命,不給皇馬機會
- 宋運輝結局 一起來了解下吧
- 當前通訊!使命召喚6攻略 使命召喚6單人挑戰模式攻略分享
- 全球時訊:方塊怎么打(輸入法怎么打出小方塊) 帶方框的單詞怎么打
- 天天微資訊!亞歐鐵路(修建西伯利亞大鐵路的意義)
- 世界微資訊!廣域網訪問設置(路由器上的WAN接入設置有什么用?)
- 銀證轉賬要手續費嗎 具體時間都是什么時候
- 熱點評!2022年哈爾濱什么時候開始供暖 哈爾濱冬天暖氣熱嗎
- 求孤島危機控制臺秘籍 需要的小伙伴快碼住
- 加盟肯德基的條件 想了解的小伙伴進來看看吧
- 胡歌上快樂大本營是哪一期 播出時間是什么時候
- 環球視點!經典愛情電視劇(十大愛情電視劇推薦:北京愛情故事)
- 葡萄牙主帥評選FIFA年度最佳!C羅無緣,姆巴佩第3,第1令人意外
- 兩橫一豎(兩橫一豎是什么字)你知道怎么讀嗎?
- 快看:9月3日是什么紀念日 中國抗戰勝利紀念日的設立背景
- 天天觀察:羅馬是爭四球隊中,唯一成長的球隊;羅馬隊中擁有3名穩定好球員
- 暴雨紅色預警是什么意思 暴雨預警信號標準
- 全球快資訊丨戶籍信息(個人戶籍查詢系統)相關信息介紹
- 全球球精選!阿彌陀佛的故事(與阿彌陀佛有關的五個故事)感興趣的別錯過了
- 恩施有什么土特產 一起來看看有哪些美食
- 天天觀點:環評上崗證報名條件詳細 該如何報名
- 全球最資訊丨散粉刷散粉正確使用方法 你學會了嗎
- 每日熱訊!孫尚香怎么死的 小編為大家答疑解惑
- 天天快資訊:雪佛蘭怎么樣(雪佛蘭質量和口碑怎么樣?)
- 最資訊丨無意易壇(無意易壇地靈風水版) 一起來看看吧
- 世界最資訊丨孔子誕辰日(孔子的出生日期是什么時候?)
- 世界消息!妥當的讀音(妥當的讀音是什么) 如何正確閱讀?
- 每日看點!血戰到底麻將經驗技巧 本文給大家帶來參考
- 天天熱點評!民心向背的意思(得民心意味著什么)
- 環球觀熱點:東菱面包機哪款好(東菱面包機好還是柏翠面包機好?)
- 一代梟雄典獄長(《掃黑風暴》最無厘頭的角色)
- 全球快訊:火炬之光2怎么洗點 相關知識講解
- 【全球速看料】家庭養殖致富信息(懶惰的室內飼養項目介紹)
- 通常電子郵件接收服務器是什么
- 無用服飾(“例外”到“無用”)
- 今日要聞!2022婦女節放假國家規定 你有假期嗎
- 天天快資訊:復活節習俗 相關知識送給大家
- asv屏幕(ASV屏幕還是電容屏)金屬屏和全面屏哪個好?
- 天天日報丨言對青山不是青(青山不綠你猜一個詞)
- ape刻錄cd光盤方法 如何無損地將ape格式的音樂刻錄到DVD上?
- 【環球速看料】摔角動態《摔角狂熱32》主戰賽計劃披露 羅曼對戰他?
- 【全球獨家】友善的交談!(如何友好的談話? 這些交流技巧你都會嗎)
- 全球快資訊丨手機u盤在手機上怎么使用 不會的快看過來
- 每日信息:圣誕節和平安夜的由來故事 平安果是什么?
- 全球今日訊!三月三是什么日子(六月六是什么節)
- 世界滾動:惠普cq40配置(惠普CQ40筆記本無待機故障維修)
- 02月28日09時, 昆明早高峰路況
- 世界聚焦:電腦qq皮膚不能透明了(qq皮膚變透明操作方法介紹)
- 丹霞山自駕游玩攻略(丹霞山好玩嗎)景點推薦
- 商鞅變法是在哪個國家進行的 詳細內容了解
- 焦點觀察:司藤電視劇劇情介紹 一共有多少集
- 每日看點!自助取票時間限制(網上訂票取票時間新規)
- 當前熱門:有含義名字 好聽有含義的名字,有你喜歡的嗎
- 環球短訊!lowrysfarm香港官網(lowrysfarm)
- 炫舞vos模式怎么玩(還不會的快看過來)
- 菊花島一日半游(菊花島旅游攻略)
- 某花圃用花盆培育某種花苗經過試驗發現(某花圃用花盆培育某種花苗)
- 每日報道:惆悵是什么意思 惆悵所表達的含義
- 康星消毒柜下層燈不亮(康星消毒柜)
- 當前看點!二百五”從何而來(二百五表示什么意思)
- 男生化妝有多帥(男士化妝的好處)
- 為什么掃黑風暴停播(掃黑風暴劇情簡介)
- 天天快消息!3月4日起,云南獨龍江公路將交通管制一年
- 最新消息:北國的春風閱讀理解(北國的春風閱讀答案)
- 奧運會獎牌榜2021賽程表 賽事過程回顧
- 環球新動態:這個警隊人均二等功,卻沒有一張露臉照
- 世界速遞!手抓飯是哪個民族的(手抓飯是哪個民族的飲食風俗)
- 天天滾動:聯想電腦官方旗艦店官網(學生黨別錯過了)
- 天天看點:長江和黃河分別流入哪個海 相關知識講解
- 9.23是什么日子(2021年9月23日是秋分?)
- 揮刀自宮什么意思(揮刀自宮是什么意思)
- linux有必要學嗎(學linux有前途嗎)
- 環球視訊!新商業文明的四個準則是什么(新商業文明的四大原則是什么)
- 全球熱點!電腦重裝系統步驟方法(如何從做系統)詳細步驟如下
- 環球快看點丨CETV是什么頻道 CETV-1是哪個電視臺?
- 時訊:《掃黑風暴》孫興與賀蕓是什么關系 最后結局怎么樣
- 當前看點!鄧超出軌門案索賠(孫儷鄧超婚變) 這是真的嗎?
- 銅陵經開區:優化營商環境 做實助企服務
- h7n9死亡人數(2021年禽流感將大爆發嗎)相關內容如下
- 快訊:市政府常務會議召開
- 張惠妹怎么那么胖(張惠妹為什么爆肥)發生什么了
- 全球觀熱點:湘桂貿促系統西部陸海新通道商貿物流產業合作永州對接會召開
- 全球熱點!市政協機關召開作風建設專題會議
- 關注:可以進入任何網站的瀏覽器(Edge瀏覽器基本功能介紹)
- 海洋中的“瞌睡大王”是什么動物 你答出來了嗎
- 小米13 Pro開放Wi-Fi7:2.9秒下一部電影
- 全球熱消息:廣東小將赴美特訓展示不俗運控能力,他將是下一個周鵬?
- 每日播報!年輕隊員為夢想不懈拼搏
- 世界熱點!泰山隊做出改變,郝偉終于下狠心了,新賽季將展現出全新精神面貌
- 天天速讀:一加Ace 2V官宣:天璣9000新旗艦 105萬分
- 今日熱聞!NBA早報:杜蘭特巴克利開懟,戰灰熊詹皇缺陣,甜瓜宣傳世界杯
- 摔角動態巨星巴蒂斯塔遭諷刺 爆粗炮轟粉絲
- 【天天熱聞】02月28日08時, 昆明早高峰路況