Pandas 1.0.0rc發佈:增加markdown格式的輸出


Pandas 1.0.0rc發佈:增加markdown格式的輸出


介紹:

Pandas 1.0.0rc 已於1月9日發佈。先前的版本是0.25。

Pandas的第一個新的主要發行版包含許多強大的功能,包括更好的數據框自動彙總,更多的輸出格式,新的數據類型,甚至是新的文檔站點。

完整的發行說明可在新的文檔站點上找到。

要使用新版本,您可以使用pip輕鬆升級Pandas。在撰寫本文時,Pandas 1.0仍是候選版本,這意味著安裝Pandas 1.0需要明確指定其版本。

<code>pip install --upgrade pandas==1.0.0rc0/<code>

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

此版本的Pandas也不再支持Python2。使用Pandas 1.0+至少需要Python 3.6+,因此請確保您的pip和python使用的是正確的版本。

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

$ python --version
Python 3.7.5/<code>

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

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

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

我最喜歡的新功能是改進的DataFrame.info方法。現在,它使用了更具可讀性的格式,從而使您的數據探索過程更加容易。

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

markdown的輸出格式

另一個功能是使用新的DataFrame.to_markdown方法將Dataframe導出到Markdown表的功能。

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

這樣可以通過github gists更輕鬆地在Medium等位置顯示錶格。

布爾值和字符串的新數據類型

Pandas1.0還引入了布爾值和字符串的實驗數據類型。

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

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

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

注意,Dtype列現在如何反映新類型的字符串和布爾值。

新字符串dtype最有用的好處是,您現在可以僅從DataFrame中選擇字符串列。這樣可以更快地對數據集的文本成分進行分析。

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

以前,只能通過顯式使用它們的名稱來選擇字符串類型的列。

有關Pandas 1.0.0的更多文檔,請參見官方文檔。


分享到:


相關文章: