這些Pandas1.0主要功能,你掌握了嗎?

全文共2252字,預計學習時長

7分鐘

這些Pandas1.0主要功能,你掌握了嗎?


注意:Pandas 1.0.0rc已於1月9日發佈,先前的版本為0.25。


Pandas首個全新主要發行版本包含許多重要功能:更完善的數據框自動彙總、更全面的輸出格式、全新的數據類型以及文檔站點。


在全新的文檔站點上,可以找到完整的發行說明,但小芯認為,技術含量較低的概述也會有所幫助。


用戶可以使用 pip升級Pandas,以便使用其新版本。在撰寫本文時,Pandas1.0仍然是候選版本,這意味著要安裝Pandas1.0需要明確指定其版本。


<code>pip install --upgradepandas==1.0.0rc0/<code>

當然,更新可能會破壞某些代碼,因為這是主要版本的發佈,因此請務必小心!


此版本的Pandas不再支持Python 2。運行Pandas 1.0+至少需要Python 3.6+,因此請確保使用合適版本的pip 和python。


<code>$ pip --version/<code>
<code>pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)$ python--version/<code>
<code>Python 3.7.5/<code>

用戶可以確認一切正常,並且Pandas使用的是正確版本。


<code>>>> import pandas as pd/<code>
<code>>>> pd.__version__/<code>
<code>1.0.0rc0/<code>

使用DataFrame.info更好的自動彙總


這些Pandas1.0主要功能,你掌握了嗎?


筆者最喜歡的新功能是優化之後的DataFrame.info法。現在,它使用了更具可讀性的格式,從而使數據探索過程更加容易。


<code>>>> df = pd.DataFrame({/<code>
<code>...: 'A': [1,2,3],/<code>
<code>...: 'B': ["goodbye","cruel", "world"],/<code>
<code>...: 'C': [False, True, False]/<code>
<code>...:})/<code>
<code>>>> df.info()/<code>
<code><class>/<code>
<code>RangeIndex: 3 entries, 0 to 2/<code>
<code>Data columns (total 3 columns):/<code>
<code># Column Non-Null Count Dtype/<code>
<code>--- ------ -------------- -----/<code>
<code>0 A 3 non-null int64/<code>
<code>1 B 3 non-null object/<code>
<code>2 C 3 non-null object/<code>
<code>dtypes: int64(1), object(2)/<code>
<code>memory usage: 200.0+ bytes/<code>

Markdown表的輸出格式


其次,筆者最喜歡的功能是使用新的 DataFrame.to_markdown 法將數據幀導出到Markdown表中。


<code>>>> df.to_markdown()/<code>
<code>| | A | B | C |/<code>
<code>|---:|----:|:--------|:------|/<code>
<code>| 0 | 1 | goodbye | False |/<code>
<code>| 1 | 2 | cruel | True |/<code>
<code>| 2 | 3 | world | False |/<code>

這樣一來,通過github gists在Medium等地方顯示錶格更加便捷。


booleans and strings的新數據類型


這些Pandas1.0主要功能,你掌握了嗎?


Pandas1.0還為booleans and strings引入了實驗數據類型。


由於這些更改是實驗性的,數據類型的API可能會稍有更改,因此應謹慎使用。但是Pandas建議在合理的地方使用這些數據類型,將來的版本將完善諸如regex匹配之類的特定於類型的操作性能。


默認情況下,Pandas不會自動將數據強制轉換為這些類型。但是,如果明確指示Pandas,仍然可以使用它們。


<code>>>> B =pd.Series(["goodbye", "cruel", "world"],dtype="string")/<code>
<code>>>> C = pd.Series([False, True, False], dtype="bool")/<code>
<code>>>> df.B = B, df.C = C/<code>
<code>>>> df.info()/<code>
<code><class>/<code>
<code>RangeIndex: 3 entries, 0 to 2/<code>
<code>Data columns (total 3 columns):/<code>
<code># Column Non-Null Count Dtype/<code>
<code>--- ------ -------------- -----/<code>
<code>0 A 3 non-null int64/<code>
<code>1 B 3 non-null string/<code>
<code>2 C 3 non-null bool/<code>
<code>dtypes: int64(1), object(1), string(1)/<code>
<code>memory usage: 200.0+ bytes/<code>

注意Dtype列現在如何反應新類型的string和bool。


新字符串dtype最實用的優勢在於,可以從DataFrame中選擇string列。這樣可以更快地僅對數據集的文本成分進行分析。


<code>df.select_dtypes("string")/<code>

以前,只能通過顯式使用其名稱來選擇string類型列。


從今天開始,掌握Pandas 1.0的主要功能,全新優化開啟使用吧~

這些Pandas1.0主要功能,你掌握了嗎?

這些Pandas1.0主要功能,你掌握了嗎?

我們一起分享AI學習與發展的乾貨


分享到:


相關文章: