国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

??僅剩20分鐘挑戰一道Pandas面試題??生死競速??簡直刺激?

objc94 / 1075人閱讀

?作者主頁:小小明-代碼實體

?簡介:Python領域優質創作者?、數據處理專家?

?歡迎點贊 ? 收藏 ?留言 ?


昨晚有位童鞋一道Pandas面試題完全沒有思路不會做,通過黃同學找到我時,這道題目離提交答案僅剩20分鐘,不過我最終還是在15分鐘之內解決了問題,這整個過程簡直是刺激~???

原題題目如下:

最終要求輸出:

要在20分鐘內解決這個問題,對于我來說最困難的第一步就是理解題意,作為一名英文渣渣,硬看這個還是理解的太慢。ε=ε=ε=(#>д<)?啊啊啊,簡直是生死競速啊,怎么辦?

最終我使用了騰訊翻譯官進行輔助,翻譯結果如下:

有了圖片翻譯工具,這個題目總算理解了。

我總結一下四個規則要求:對于每一天的每一支股票,會有N個來源的價格,去掉空值后優先選擇最頻繁出現的價格,出現次數全部一樣時選擇來源id最小的價格,當天該股票全部都是空值時,選擇前一個交易日的價格。

搞清楚了規則就可以開始整理數據了,這里我手敲編輯了數據為:

datetickerpricesource_id
2013/1/2AAPL515.610
2013/1/2AAPL515.621
2013/1/2AAPL515.622
2013/1/3AAPL515.160
2013/1/3AAPL515.171
2013/1/3AAPL515.182
2013/1/4AAPL0
2013/1/4AAPL515.451
2013/1/4AAPL515.472
2013/1/7AAPL0
2013/1/7AAPL1
2013/1/7AAPL2
2013/1/8AAPL527.280
2013/1/8AAPL528.291

保存Excel文件。

已經耗時10分鐘了?怎么辦?怎么辦??

不過也已經到了我最擅長的編碼階段,開干吧???

首先使用pandas讀取數據:

import?pandas?as?pddf?=?pd.read_excel("股票數據.xlsx")df

這四個規則,直接使用pandas本身的方法會導致代碼較為臃腫。由于時間緊迫,這里我直接使用萬能的循環來解決這個問題,最終完整代碼如下:

result?=?[]for?(date,?ticker),?split?in?df.groupby(["date",?"ticker"]):????prices?=?split.price.mode()????if?prices.shape[0]?>?0:????????price?=?split.price.mode().iat[0]????else:????????price?=?last????result.append((date,?ticker,?price))????last?=?priceresult?=?pd.DataFrame(result,?columns=["date",?"ticker",?"price"])result

結果:

可以看到結果滿足題目的四點規則要求,歷時5分鐘編碼終于搞定了。?長舒一口氣壓壓驚~

做完后我立馬將代碼和截圖發給了對方,對方也在提交答案后立馬回了我一個紅包。

但是表達看不懂,希望我寫篇文章:

既然如此,那么我就寫下這篇文章來詳解這其中的幾個小知識點。雖然其實這其中涉及的內容比我以前的老文章要簡單20倍以上,不太屑于寫,但黃同學都這樣邀請了,我就逼自己寫一把吧?

首先呢,我們將整個datafream按照每天每支股票拆分成一個個的Datafream:

for?(date,?ticker),?df_split?in?df.groupby(["date",?"ticker"]):????print(date,?ticker)????display(df_split)

結果如下:

可以看到這支股票的每一天的數據都被拆分了出來。

取最頻繁的價格,我們可以使用眾數:

df_split.price.mode()
0????527.281????528.29dtype:?float64

這種形式表示眾數不止一個,表示出現次數一致,此時規則2要求選擇來源id最小的價格,由于數據本身是按照來源id從小到大排序的,那么我們直接取第一個眾數即可:

df_split.price.mode().iat[0]
527.28

但是問題是,某個分組可能出現價格全部為空值的情況,此時規則要求取前一個分組的價格,這也是我直接使用循環來解決這個問題的原因,因為可以通過一個變量記錄前一次遍歷分組的結果。

當然為了避免數據源可能出現無序的情況的情況,我們需要事先對數據進行排序:

df.sort_values(["ticker",?"date",?"source_id"],?inplace=True)

最后我將所有的結果數據都保存到了一個列表中,通過DataFrame的構造函數則可以直接根據一個列表生成一個DataFrame,columns參數指定了列名。

額,感覺實在太過于基礎已經沒啥可寫的了,推薦幾篇老文章吧:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119820.html

相關文章

  • ??蘇州程序大白一文從基礎手把手教你Python數據可視化大佬??《??記得收藏??

    ??蘇州程序大白一文從基礎手把手教你Python數據可視化大佬??《??記得收藏??》 目錄 ????開講啦!!!!????蘇州程序大白?????博主介紹前言數據關系可視化散點圖 Scatter plots折線圖強調連續性 Emphasizing continuity with line plots同時顯示多了圖表 數據種類的可視化 Plotting with categorical da...

    Drinkey 評論0 收藏0
  • ??導圖整理大廠面試高頻數組8: 移除元素的雙指針優化, 力扣27??

    此專欄文章是對力扣上算法題目各種方法的總結和歸納, 整理出最重要的思路和知識重點并以思維導圖形式呈現, 當然也會加上我對導圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(不用每次都重復看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經知道解題思路和方法, 想進一步加強理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據題號先去力扣看看官方題解, 然后再看本文內容). 關...

    zhangyucha0 評論0 收藏0
  • ??小白必看??帶你避開python大坑??在使用openpyxl時,出現ValueError: U

    在使用openpyxl時,出現ValueError: Unknown engine: openpyxl 問題定位解決思路拓展 問題定位 在使用鏈接: https://blog.csdn.net/SuperAlanSun/article/details/120042466 博客中的方法讀取excel數據時: import pandas as pddf=pd.rea...

    番茄西紅柿 評論0 收藏2637
  • ??擼完這個springboot項目,我對boot輕車熟路!【源碼+視頻都開源】【強烈建議收藏】??

    上次給大家分享了一個springboot+vue的校園招聘系統,視頻教程加項目源碼,都是開源的,應該說很香了,今天再給大家分享一個不錯的springboot的項目。 老規矩,開源,開源,開源!!! 金九銀十來了,小伙伴們,沖啊!前面已經整理了很多的面試題,拿去學習吧! 1,??爆肝!整理了一周的Spring面試大全【含答案】,吊打Java面試官【建議收藏】!?? 2,??肝完了,一天掌握數據...

    AZmake 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<