成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

早下班系列:比python更稱手的兵器-續

企業動態
那么上一篇文章真正得出的結論其實是:就算你參加了好幾個月的python培訓班,畢業之后,你的python可能也只能寫出類似上一篇的那種被我這樣的菜鳥還瘋狂嘲諷的代碼。所以,今天的再次對比,咱就不玩上次的那種“菜雞互啄”式的對比了,上點干貨。

vspython2

話說上一回(早下班系列:比python更稱手的兵器),本菜鳥剛揶揄了一番某python培訓班的代碼,結果還沒等收到其他小伙伴的紛紛好評,就先被本公司的大俠給打臉了。

大俠給出了如下代碼:

 

  1. import pandas as pd  
  2. data = pd.read_table(‘D:/data.txt’,sep=‘ ‘)  
  3. data.PRICE = data.PRICE.str[1:].str.replace(‘,’,”).astype(‘int64’)  
  4. out = data.groupby([‘STYLE’,‘BEDROOMS’]).mean() 

 

 

刨除import語句后,同樣是三行代碼!而運行效率嘛,也跟集算器也差不多:同樣是1.4s左右!

這可真是:出師未捷臉被打,常使菜鳥淚……不對,菜鳥還不能就此放棄……

仔細一想,如果連對付這么簡單的一個22.3M的小量數據都做得那么水,那鼎鼎大名的python在編程語言界也就不用混了,谷歌、臉書等那么賣力推薦python更只會被視為腦殘。

那么上一篇文章真正得出的結論其實是:就算你參加了好幾個月的python培訓班,畢業之后,你的python可能也只能寫出類似上一篇的那種被我這樣的菜鳥還瘋狂嘲諷的代碼。

所以,今天的再次對比,咱就不玩上次的那種“菜雞互啄”式的對比了,上點干貨:

一、玩一點真正的大數據計算

上次偷了個懶,弄個22.3M的東西來冒充大數據,結果慘遭打臉,至今仍隱隱作疼……這次不敢再偷懶了,既然說是大數據,那不上他個幾G的,也敢稱為“大”么?

這回咱先上集算器的:

  A
1 =file(“D:/data.txt”).cursor@t(#1,#2:decimal,#3:int,#4:decimal,#5;,” “)
2 =A1.run(decimal(replace(replace(#5,”$”,””),”,”,””)):PRICE)
3 =A2.groups(STYLE,BEDROOMS;avg(SQFEET):SQFEET,avg(BATHS):BATHS,avg(PRICE):PRICE)

相比上次代碼基本沒變動多少,就是幾個涉及要計算平均值的數據類型,從int改成了decimal。畢竟是用大數據去計算聚合函數嘛,若還用int那就等著被爆出負數吧……

至于計算結果,看一看SQFEET、BATHS和PRICE三列就知道:因為是計算平均值,而大數據文件其實是用整塊原始數據循環復制粘貼出來的,所以最終結果,跟原先一模一樣,所以是完全正確地!

然后該python了,同樣先上代碼

 

  1. import pandas as pd 
  2.  
  3. data = pd.read_table(‘D:/data.txt’,sep=‘ ‘) 
  4.  
  5. data.PRICE = data.PRICE.str[1:].str.replace(‘,’,”).astype(‘int64’) 
  6.  
  7. print(data.groupby([‘STYLE’,‘BEDROOMS’]).mean()) 

 

 

接下來該測試結果了……咳,不出所料,python家的pandas愉快地罷工了(內存溢出)

二、讀個其他類型的文件試試

上次弄的TXT文本文件,是不是覺得看著太Low,不上檔次?這回咱就讀個Excel吧。

鑒于python要處理大數據文件實在有點麻煩(且本人也比較懶),就不拿大數據繼續欺負python了。回到一開始的小數據文件進行測試。只不過咱給他改成Excel的。

同樣先上集算器的:變兩行代碼了(得感謝Excel的金額類數值的固定格式)

  A
1 =file(“D:/data.xlsx”).importxls@tc()
2 =A1.groups(STYLE,BEDROOMS;avg(SQFEET):SQFEET,avg(BATHS):BATHS,avg(PRICE):PRICE)

計算結果依舊:

接下來該上python了,主要代碼倒也是兩行

 

  1. import pandas as pd  
  2. data = pd.read_excel(‘D:/data.xlsx’,sheet_name=0)  
  3. print(data.groupby([‘STYLE’,‘BEDROOMS’]).mean()) 

 

 

計算結果也完全一樣

不過計算前別忘了安裝xlrd和xlwt兩個庫,否則pandas會報錯給你看哦!至于怎么安裝這兩個庫?不難,反正我是用pip在線安裝的。怎么安裝pip?呵呵,請看本系列的***篇

這個比較,就算打個平手吧,畢竟python也不是吃素的。

三、算一點稍微復雜的東西

如果覺得平時你不需要處理多大的數據,也不嫌安python的各種第三方庫麻煩(反正主要就折騰一次),那是否就不需要考慮集算器了呢?我覺得倒也未必……說實話,之前舉例的這種分類后求平均值,太幼兒園了……根本無法體現出多少差別。所以下面咱就算個稍微復雜一點的:計算一下在至少連漲三天的股票中能達到至少連漲四天的股票的比例吧。

先看看一組原始數據:

還是先上集算器的代碼,其實嚴格來講整段代碼可以縮成一大行(不過感覺太賴皮就不做了)。

  A
1 =file(“E:/Stock.xlsx”).importxls@t().sort(Date).group(Company)
2 =A1.((a=0,~.max(a=if(Price>Price[-1],a+1,0))))
3 =string(A2.count(~>=4)/A2.count(~>=3),”0.00%”)

思路很簡單,按日期排序再按股票分組,然后計算出每支股票最長上漲了多少天,再看這個值不低于3或不低于4的股票個數就完了,只是寫出連漲的邏輯會有些考驗,集算器有很好的跨行引用機制,就不在話下了。

計算結果嘛,因為數據不多,有耐心的可以心算驗算一下

再看看python解決此題需要的代碼(已做了盡量的簡化,若還有不足歡迎指導)

 

  1. import pandas as pd  
  2. def iterate(col):  
  3. prev = 0;  
  4. res = 0;  
  5. val = 0;  
  6. for curr in col:  
  7. if curr – prev > 0:  
  8. res += 1;  
  9. else 
  10. res = 0;  
  11. prev = curr;  
  12. if val < res:  
  13. val = res;  
  14. return val;  
  15. data = pd.read_excel(‘E:/Stock.xlsx’,sheet_name=0).sort_values(‘Date’).groupby(‘Company’)[‘Price’].apply(iterate);  
  16. print(‘%.2f%%’ % (data[data>=4].count()/data[data>=3].count() * 100));  

 

基本思路其實都差不多,只是python沒有太好的跨行引用機制,得搞個自定義函數才能實現這種略繁瑣的邏輯,比較適合遇到問題喜歡DIY的同學們。計算結果因為都一樣就不貼出來了 

當然,也不是說集算器什么方面都比python強,比如來個深度學習神經網絡啥的,暫時集算器里還沒加上這類功能(畢竟術業有專攻)。總之,遇到大數據或感覺python類庫安裝起來太麻煩時,不妨考慮一下集算器。 

責任編輯:龐桂玉 來源: 潤乾
相關推薦

2018-01-18 16:55:29

潤乾python

2018-03-15 14:07:17

潤乾Excel行列轉換

2021-02-07 22:27:27

UI工具網站

2022-11-13 08:06:05

ArthasEverythingMaven help

2024-02-05 22:51:49

AGIRustPython

2009-09-17 10:00:15

Linux虛擬化Windows

2015-07-31 16:29:15

DockerJavaLinux

2019-04-24 08:00:00

HTTPSHTTP前端

2013-03-25 11:27:13

Windows Blu

2014-12-01 09:52:57

開發

2021-12-27 07:10:26

ClassmethodStaticmetho函數

2012-12-28 14:02:47

2021-11-30 11:56:52

Pixel 6iPhone 12安全

2018-06-08 11:17:11

2017-11-15 10:29:13

戴爾

2022-03-11 13:13:15

LinuxWindows

2022-07-25 07:57:19

工具代碼調試

2023-12-14 15:32:17

2013-12-26 09:57:32

2015-10-20 14:21:23

交換機SDN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线国产精品 | 久草热播 | 中文字幕成人在线 | 国产露脸国语对白在线 | 天堂成人国产精品一区 | 日本午夜免费福利视频 | 99视频在线 | 成人精品免费 | 欧美久久一级 | 精品欧美一区二区在线观看 | 亚洲一区二区电影在线观看 | 精精精精xxxx免费视频 | 中文一区 | 国产香蕉视频 | 91高清免费| 在线天堂免费中文字幕视频 | 国产亚洲精品久久久优势 | 国产成人免费视频网站视频社区 | 99久久精品免费看国产四区 | 九色网址 | 久久久无码精品亚洲日韩按摩 | 国产91精品久久久久久久网曝门 | 久久大| 婷婷在线视频 | 99久久精品国产一区二区三区 | 亚洲电影在线播放 | 黑人精品xxx一区一二区 | 51ⅴ精品国产91久久久久久 | 久久精品高清视频 | 男人的天堂久久 | 99久久精品免费视频 | 91欧美精品成人综合在线观看 | 亚洲协和影视 | 国产精品久久久久久久久久久久冷 | 日本免费视频在线观看 | 91一区二区三区 | 亚洲男人的天堂网站 | 中文字幕福利视频 | 第一区在线观看免费国语入口 | 日韩福利片 | 超碰在线观看97 |