国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

大數(shù)據(jù) 數(shù)據(jù)分析 后端
大家好,關(guān)于Python數(shù)據(jù)分析的工具我們已經(jīng)講了很多了,相信一直關(guān)注的讀者對(duì)于Pandas、NumPy、Matplotlib的各種操作一定不陌生,今天我們就用一份簡(jiǎn)單的數(shù)據(jù)來(lái)學(xué)習(xí)如何使用Python進(jìn)行數(shù)據(jù)分析。

大家好,關(guān)于Python數(shù)據(jù)分析的工具我們已經(jīng)講了很多了,相信一直關(guān)注的讀者對(duì)于Pandas、NumPy、Matplotlib的各種操作一定不陌生,今天我們就用一份簡(jiǎn)單的數(shù)據(jù)來(lái)學(xué)習(xí)如何使用Python進(jìn)行數(shù)據(jù)分析,本文主要涉及下面三個(gè)部分:

  • Pandas數(shù)據(jù)處理
  • Matplotlib繪圖
  • 利用pyinstaller將py文件打包為exe

雖然本文使用的數(shù)據(jù)(醫(yī)學(xué)相關(guān))不會(huì)出現(xiàn)在你平時(shí)的工作學(xué)習(xí)中,但是處理的過(guò)程比如導(dǎo)入數(shù)據(jù)、缺失值處理、數(shù)據(jù)去重、計(jì)算、匯總、可視化、導(dǎo)出等操作卻是重要的,甚至還教你如何將程序打包之后對(duì)于重復(fù)的工作可以一鍵完成!

數(shù)據(jù)與需求說(shuō)明

今天分享的案例來(lái)源于一個(gè)著名的實(shí)驗(yàn)Cell Counting Kit-8。首先我們來(lái)看下原始數(shù)據(jù):

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

我們需要完成的工作主要有四塊:

  1. 去除各組所有重復(fù)中的最大值和最小值
  2. 所有數(shù)據(jù)根據(jù)D0的對(duì)應(yīng)分組進(jìn)行標(biāo)準(zhǔn)化
  3. 計(jì)算各組數(shù)據(jù)的均值和標(biāo)準(zhǔn)差表格:均值匯總表和均值-標(biāo)準(zhǔn)差匯總表
  4.  繪制折線圖

所以我們需要的結(jié)果應(yīng)該是:在自己的桌面上建一個(gè)文件夾命名data,將原始數(shù)據(jù)data.xlsx放進(jìn)去,之后運(yùn)行完程序后文件夾會(huì)新增3個(gè)文件:

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

而這三個(gè)文件就是我們需要的結(jié)果

均值匯總表

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

均值-標(biāo)準(zhǔn)差匯總表

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

折線圖

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

現(xiàn)在我們就來(lái)講解如何實(shí)現(xiàn)。

代碼實(shí)現(xiàn)

首先導(dǎo)入庫(kù)并調(diào)用函數(shù)獲取桌面文件夾路徑并寫(xiě)在全局

  1. import pandas as pd 
  2. import matplotlib.pyplot as plt 
  3. import os 
  4. import random 
  5. def GetDesktopPath(): 
  6.     return os.path.join(os.path.expanduser("~"), 'Desktop'
  7.  
  8. path = GetDesktopPath() + '/data/' 

導(dǎo)入原始數(shù)據(jù)并去除缺失值

  1. dat = pd.read_excel(path + 'data.xlsx'
  2.                     sheet_name=0, 
  3.                     header=None, 
  4.                     index_col=0) 
  5. dat = dat.dropna(how='any', axis=0) 

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

獲取重復(fù)次數(shù),分組個(gè)數(shù)和天數(shù)。原始數(shù)據(jù)有6天、5組、5次重復(fù),雖然也可以直接使用這三個(gè)數(shù)據(jù),但以后的實(shí)驗(yàn)這三個(gè)可能會(huì)更改,為了讓代碼能夠復(fù)用,最好不要寫(xiě)死

  1. # 獲取分組個(gè)數(shù) 
  2. ngroup = dat.index.value_counts().shape[0] 
  3. # 獲取列數(shù)即重復(fù)次數(shù) 
  4. nrep = dat.shape[1] 
  5. # 獲取天數(shù)(操作的批次數(shù))即用總行數(shù)除以組數(shù),用整除是為了返回int 
  6. nd = dat.shape[0] // ngroup 

去掉極大值和極小值。這里用的解決辦法是逐行升序排序,然后去掉第一個(gè)和最后一個(gè)數(shù)據(jù),可以用apply+lambda處理

  1. df = dat.apply(lambda x: sorted(x)[1:nrep - 1], axis=1) 
  2.  
  3. df = df.to_frame(name='total'
  4. for i in range(nrep - 2): 
  5.     df[f'{i + 1}'] = df['total'].str[i] 
  6.  
  7. df.drop(columns=['total'], inplace=True

用匿名函數(shù)排序返回的是Series的升序列表,須有轉(zhuǎn)換回DataFrame再拆成三列,最后去掉原來(lái)返回那一列即可。因此有了如上代碼

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

在常規(guī)列中添加分組信息和批次信息,便于后續(xù)做匯總表

  1. df['group'] = df.index 
  2.  
  3. day_lst = [] 
  4. for i in range(nd): 
  5.     day_lst.append(f'Day{i}'
  6. # 用列表推導(dǎo)式做列表內(nèi)元素重復(fù)并添加新列 
  7. df['day'] = [i for i in day_lst for _ in range(ngroup)] 

效果如圖:

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

根據(jù)D0的各組均值對(duì)所有數(shù)據(jù)標(biāo)準(zhǔn)化,可以簡(jiǎn)單理解為DO批次5個(gè)組去除兩個(gè)極值后各求平均值,這5個(gè)批次的5個(gè)組各自除于D0對(duì)應(yīng)組的均值)

  1. # 根據(jù)組數(shù)取出D0的所有行數(shù),然后按行求均值,會(huì)自動(dòng)忽略文本信息 
  2. mean_lst = df.iloc[0:ngroup, :].mean(axis = 1).tolist() 
  3.  
  4. # 由于接下來(lái)要按行進(jìn)行迭代,且索引的分組信息已經(jīng)有一個(gè)新列來(lái)表述,這里重置索引方便迭代 
  5. df.reset_index(drop=True, inplace=True
  6.  
  7. # 迭代的內(nèi)容看起來(lái)復(fù)雜實(shí)際上不難 
  8. # 本質(zhì)上就是將迭代行的數(shù)據(jù)和D0對(duì)應(yīng)分組均值相除 
  9. for index, i in df.iterrows(): 
  10.     df.iloc[index, 0:nrep - 2] = i[0:nrep - 2] / mean_lst[index % ngroup] 

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

標(biāo)準(zhǔn)化結(jié)束后即可獲取均值和標(biāo)準(zhǔn)差

  1. # 同樣mean和std均會(huì)忽略非數(shù)值列 
  2. # 謹(jǐn)慎一點(diǎn)用df['mean'] = df.iloc[:, 0:nrep - 2].mean(axis=1)也可以 
  3. df['mean'] = df.mean(axis=1) 
  4. df['std'] = df.std(axis=1) 
  5.  
  6. # 獲取最后四列 
  7. results = df.iloc[:, -4:] 

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

制作數(shù)據(jù)透視表并導(dǎo)出

  1. # 用round保留4位有效數(shù)字 
  2. tb1 = pd.pivot_table(data=results, 
  3.                      index='group'
  4.                      columns='day'
  5.                      values='mean').round(4) 
  6.  
  7. tb2 = pd.pivot_table(data=results, 
  8.                      index='group'
  9.                      columns='day'
  10.                      values=['mean''std']).round(4) 
  11.  
  12. tb1.to_excel(path + '/result(mean).xlsx'
  13.              index=True
  14.              header=True
  15.  
  16. tb2.to_excel(path + '/result(mean+std).xlsx'
  17.              index=True
  18.              header=True

在Jupyter Notebook呈現(xiàn)結(jié)果如下,在Excel的呈現(xiàn)如本文開(kāi)頭所示

 

實(shí)戰(zhàn)|Python數(shù)據(jù)分析可視化并打包

利用matplotlib畫(huà)圖,補(bǔ)充兩個(gè)細(xì)節(jié),如果在Jupyter Notebook希望出圖需要加上如下代碼

  1. %matplotlib inline 

如果有中文字符需要呈現(xiàn)也同樣需要用代碼設(shè)置

  1. plt.rcParams['font.sans-serif'] = ['SimHei'

匯總表的索引(組名)可以用做圖像的標(biāo)簽。而顏色和折線上標(biāo)記樣式所用的測(cè)量是根據(jù)所需的個(gè)數(shù)隨機(jī)無(wú)放回抽樣

  1. group_lst = tb1.index.tolist() 
  2. colors = ['b''g''r''c''m''y'
  3. color_lst = random.sample(colors, ngroup) 
  4. markers = ['.'',''o''v''^''<''>'
  5.            '1''2''3''4''s''p''*''h''H''+''x''D''d'
  6. marker_lst = random.sample(markers, ngroup) 

最后的畫(huà)圖代碼:

  1. # 設(shè)置畫(huà)布大小 
  2. plt.figure(figsize=(8, 5)) 
  3.  
  4. for i in range(ngroup): 
  5.     plt.plot(tb1.iloc[i, :].tolist(), 
  6.              f'{color_lst[i]}{marker_lst[i]}-', lw=2) 
  7.  
  8. plt.xticks(range(0, nd), day_lst, fontsize=18) 
  9. plt.ylabel('Relative Cell Amount', fontsize=18) 
  10. plt.legend(group_lst, loc='best', fontsize=12) 
  11. # 讓圖像的顯示分布正常 
  12. plt.tight_layout() 
  13. # 保存一定要在調(diào)用展示之前 
  14. plt.savefig(path + "/折線圖.png"
  15. plt.show() 

exe打包

首先在命令行使用pip安裝pyinstaller

  1. pip install pyinstaller 

將完整代碼保存成py文件,這里我保存為cck8.py,然后放在桌面上data文件夾內(nèi),然后打開(kāi)命令行,cd進(jìn)入該文件夾,然后調(diào)用第二行命令即可以編譯成exe

  1. cd C:\Users\chenx\Desktop\data 
  2. pyinstaller --onefile --clean cck8.py 

當(dāng)然第二行的命令可以自定義如添加圖標(biāo)等等,這里不做介紹,有興趣的可以自己探索。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2023-11-24 14:02:00

Python數(shù)據(jù)分析

2018-12-03 16:50:23

數(shù)據(jù)可視化數(shù)據(jù)分析薪水

2017-01-12 17:28:59

數(shù)據(jù)分析數(shù)據(jù)可視化可視化

2017-03-09 09:54:13

分析數(shù)據(jù)可視化

2017-09-15 10:23:06

可視化Bug數(shù)據(jù)分析

2017-04-18 11:01:14

數(shù)據(jù)分析數(shù)據(jù)可視化

2019-09-02 15:40:25

可視化數(shù)據(jù)分析

2025-10-10 07:00:00

Python數(shù)據(jù)可視化數(shù)據(jù)分析

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2021-10-11 08:04:22

Python數(shù)據(jù)行程

2023-08-28 16:19:32

2018-11-21 14:38:09

分析在數(shù)據(jù)電影

2024-07-01 08:51:19

可視化數(shù)據(jù)分析漏斗

2021-09-03 08:58:00

數(shù)據(jù)分析可視化

2020-12-07 05:51:49

數(shù)據(jù)分析數(shù)據(jù)可視化數(shù)據(jù)科學(xué)

2017-10-14 13:54:26

數(shù)據(jù)可視化數(shù)據(jù)信息可視化

2021-10-08 09:27:11

Python圖形化工具

2023-06-09 12:59:52

Python性能分析

2016-12-29 20:05:56

數(shù)據(jù)可視化大數(shù)據(jù)產(chǎn)品分析

2022-08-26 09:15:58

Python可視化plotly
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

午夜啪啪免费视频| 欧美性色视频在线| 亚洲第一精品夜夜躁人人躁| www.黄色网址.com| 久久爱www成人| 亚洲国产黄色片| 免费看黄色一级大片| 亚洲麻豆av| 日本精品久久久久久久| 国产精品蜜芽在线观看| 99r精品视频| 精品免费视频123区| 日本亚洲不卡| 一区二区在线视频| 国产在线更新| 国产精品夫妻自拍| 爆乳熟妇一区二区三区霸乳| 久久最新视频| 成人在线播放av| 福利电影导航| 91偷拍与自偷拍精品| 亚洲看片网站| 日韩电影在线观看网站| 国产97在线播放| 欧洲杯半决赛直播| 青草热久免费精品视频| 国产精久久一区二区| 亚洲精品久久久久| 男人天堂视频在线观看| 精品成人私密视频| 国产777精品精品热热热一区二区| 欧美性生活影院| av在线首页| 欧美一区二区观看视频| av电影在线网| 欧美少妇一区二区| 午夜伦理大片视频在线观看| 欧美一级日韩免费不卡| 激情av在线播放| 一区三区二区视频| 精品中文在线| 国产精品video| 欧美精品第一区| 国产欧美日韩综合精品二区| 黑人一区二区三区四区五区| 久久99国产精品99久久| 国产老肥熟一区二区三区| 丰满爆乳一区二区三区| 最新国产成人在线观看| 国产九色在线| 亚洲人成毛片在线播放| 成人av综合网| 95av在线视频| 久久精品国产精品亚洲精品 | 国产高清精品一区二区| 三级欧美韩日大片在线看| 超碰超碰超碰超碰超碰| 亚洲男人的天堂在线aⅴ视频| 国产黄在线看| 日韩少妇与小伙激情| 欧美三区在线| 簧片在线免费看| 日韩欧美一二三区| 久久爱www成人| 二级片在线观看| 午夜一区二区三区视频| 性国裸体高清亚洲| 成人深夜直播免费观看| 2021中文字幕一区亚洲| 亚乱亚乱亚洲乱妇| 欧美自拍大量在线观看| 毛片大全在线观看| 国产+成+人+亚洲欧洲| 国产日韩精品久久久| 婷婷激情综合| 大黄网站在线观看| 国产私人影院| 在线视频不卡一区二区三区| 69**夜色精品国产69乱| 精品日韩欧美在线| 一区二区三区波多野结衣在线观看| 日韩中文字幕一区二区三区| 国产极品模特精品一二| 在线中文资源天堂| 亚洲精品怡红院| 亚洲第一男人天堂| 国产色产综合色产在线视频| 五月久久久综合一区二区小说| 日本三级在线视频| 日本丰满少妇黄大片在线观看| 久久免费视频在线观看| 欧美日韩免费一区二区三区 | 日韩视频一二三| 久久久精品一区二区| 亚洲美女区一区| 国产一区二区久久| 国内精品久久久久久久97牛牛| 色综合小说天天综合网| 亚洲欧美另类国产| 在线免费观看成人短视频| 中文字幕国产精品一区二区| 国产美女在线精品| 欧美视频二区| 国产精品久久久久久久免费观看| 国产精品**亚洲精品| 污片视频在线免费观看| 国产高清在线观看| 国产黄视频在线观看| 成人免费观看cn| 亚洲综合第一| 青青草成人网| 91国产高清在线| 欧美成人精品在线观看| 亚洲人成亚洲人成在线观看| 4438x成人网最大色成网站| 玉米视频成人免费看| 久久精品人人做人人爽97| 国产99久久久精品| 国产白丝网站精品污在线入口| 在线欧美福利| 欧美一区2区| 成人在线一区| 久久久久久免费视频| 久久中文字幕二区| 国产欧美另类| 久久久91精品国产一区二区精品| 国产精品高潮呻吟久久| 色婷婷亚洲一区二区三区| 555夜色666亚洲国产免| 久久久精品综合| 欧美/亚洲一区| 亚洲经典视频| 成人av毛片| 91福利电影| 亚洲精品少妇一区二区| 国产精品久久久久久久久免费| 日韩欧美一区二区久久婷婷| 亚洲精品老司机| 成人手机电影网| 精品一区二区久久| 日韩精品高清不卡| 在线观看国产v片| 激情婷婷丁香| 国产黄色网页| 天天综合网日韩| 日韩不卡一二区| 色爱区成人综合网| 国产精品成人一区二区三区| 国产精品久久久久久久久免费 | 成人女性文胸| www.av中文字幕| 波多野结衣综合网| 国产日韩亚洲欧美在线| 午夜精品亚洲一区二区三区嫩草| 久久艳妇乳肉豪妇荡乳av| 国产伦精品一区二区三区高清版 | 久久sese| 爱搞国产精品| 竹内纱里奈兽皇系列在线观看| 激情福利在线| 五月天婷婷在线视频| 久操免费在线| 亚洲国产精品精华素| 秋霞伦理一区| 最新日韩三级| 超碰在线一区| 综合在线视频| 免费久久99精品国产自在现线| 在线综合欧美| 久久99国产精品免费网站| 日本v片在线高清不卡在线观看| 日韩不卡一区二区| 日本亚洲一区二区| 久久精品网站免费观看| 亚洲午夜免费视频| 91精品国产高清一区二区三区 | 福利视频网站| 一二三在线视频社区| 色三级在线观看| 玖玖精品一区| 影音先锋日韩在线| 日本美女一区二区| 国产午夜精品福利| 欧美激情一区三区| 欧美日韩一区三区四区| 久久中国妇女中文字幕| 国产欧美一区二区白浆黑人| 亚洲成人第一| 激情丁香婷婷| 综合日韩av| 欧美精品国产| 成人小视频在线观看| 日本道色综合久久| 欧美日韩福利电影| 欧美一级二级三级| 又黄又爽又色视频| 国产成人精品一区二三区在线观看| 亚洲老妇激情| 亚洲欧美日本韩国| 久久精品国产精品亚洲|