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的更多文档,请参见官方文档。


分享到:


相關文章: