注意:Pandas 1.0.0rc已于1月9日发布,先前的版本为0.25。

Pandas首个全新主要发行版本包含许多重要功能:更完善的数据框自动汇总、更全面的输出格式、全新的数据类型以及文档站点。

在全新的文档站点上,可以找到完整的发行说明,但小芯认为,技术含量较低的概述也会有所帮助。

用户可以使用 pip升级Pandas,以便使用其新版本。在撰写本文时,Pandas1.0仍然是候选版本,这意味着要安装Pandas1.0需要明确指定其版本。

pipinstall--upgradepandas==1.0.0rc0

当然,更新可能会破坏某些代码,因为这是主要版本的发布,因此请务必小心! 此版本的Pandas不再支持Python 2。运行Pandas 1.0+至少需要Python 3.6+,因此请确保使用合适版本的pip 和python。

$pip--version

pip19.3.1from/usr/local/lib/python3.7/site-packages/pip(python3.7)$python--version

Python3.7.5

用户可以确认一切正常,并且Pandas使用的是正确版本。

>>>importpandasaspd

>>>pd.__version__

1.0.0rc0

使用DataFrame.info更好的自动汇总

笔者最喜欢的新功能是优化之后的DataFrame.info法。现在,它使用了更具可读性的格式,从而使数据探索过程更加容易。

>>>df=pd.DataFrame({

...:'A':[1,2,3],

...:'B':["goodbye","cruel","world"],

...:'C':[False,True,False]

...:})

>>>df.info()

RangeIndex:3entries,0to2

Datacolumns(total3columns):

#ColumnNon-NullCountDtype

----------------------------

0A3non-nullint64

1B3non-nullobject

2C3non-nullobject

dtypes:int64(1),object(2)

memoryusage:200.0+bytes

Markdown表的输出格式

其次,笔者最喜欢的功能是使用新的 DataFrame.to_markdown 法将数据帧导出到Markdown表中。

>>>df.to_markdown()

||A|B|C|

|---:|----:|:--------|:------|

|0|1|goodbye|False|

|1|2|cruel|True|

|2|3|world|False|

这样一来,通过github gists在Medium等地方显示表格更加便捷。

booleans and strings的新数据类型

来源:Pexels

Pandas1.0还为booleans and strings引入了实验数据类型。

由于这些更改是实验性的,数据类型的API可能会稍有更改,因此应谨慎使用。但是Pandas建议在合理的地方使用这些数据类型,将来的版本将完善诸如regex匹配之类的特定于类型的操作性能。

默认情况下,Pandas不会自动将数据强制转换为这些类型。但是,如果明确指示Pandas,仍然可以使用它们。

>>>B=pd.Series(["goodbye","cruel","world"],dtype="string")

>>>C=pd.Series([False,True,False],dtype="bool")

>>>df.B=B,df.C=C

>>>df.info()

RangeIndex:3entries,0to2

Datacolumns(total3columns):

#ColumnNon-NullCountDtype

----------------------------

0A3non-nullint64

1B3non-nullstring

2C3non-nullbool

dtypes:int64(1),object(1),string(1)

memoryusage:200.0+bytes

注意Dtype列现在如何反应新类型的string和bool。

新字符串dtype最实用的优势在于,可以从DataFrame中选择string列。这样可以更快地仅对数据集的文本成分进行分析。

df.select_dtypes("string")

以前,只能通过显式使用其名称来选择string类型列。

从今天开始,掌握Pandas 1.0的主要功能,全新优化开启使用吧~

推荐内容