当前位置:科技焦点网科技资讯正文

读完本文轻松玩转数据处理利器Pandas1.0

放大字体  缩小字体 2020-01-24 00:08:49  阅读:8388 作者:责任编辑NO。谢兰花0258

选自Medium

作者:Tom Waterman

机器之心编译

参加:李诗萌、魔王

2020 年 1 月 9 日 Pandas 1.0.0rc 版别问世,Facebook 数据科学家 Tom Waterman 撰文概述了其新功用。本文助你轻松玩转 Pandas 1.0。

常用数据科学库 Pandas 刚刚年满十二岁,现在现已发布到 1.0.0 版。首个 Pandas 1.0 候选版别显示出,现在的 Pandas 在遇到缺失值时会接纳一个新的标量,遵从语义化版别操控(Semantic Versioning)形成了新的弃用战略,网站也经过了从头规划……

留意:Pandas 1.0.0rc 版别于 2020 年 1 月 9 日发布,之前的版别是 0.25。

最新发布的 Pandas 版别包括许多优异功用,如更好地主动汇总数据帧、更多输出格局、新的数据类型,乃至还有新的文档站点。

完好的版别阐明拜见:https://dev.pandas.io/docs/whatsnew/v1.0.0.html

本文将用较浅显的办法介绍 Pandas 新版别,期望对我们起到必定的协助。

要运用新版 Pandas,用户都能够用 pip 轻松晋级。到本文编撰时,Pandas 1.0 仍是候选版别,这在某种程度上预示着装置时需求清晰指定版别号。

pip install --upgrade pandas==1.0.0rc0

当然,晋级或许会损坏部分代码,因为这次发布的是首要版别,所以请必须当心。

这一版 Pandas 也不再支撑 Python 2。要运用 1.0+版别的 Pandas,至少需求 Python 3.6+版别,所以请承认 pip 和 python 的版别是正确的。

$ pip --version

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

Python 3.7.5

你能够精确的经过下列代码承认一切正常,以及 Pandas 的版别正确。

>>> import pandas as pd

>>> pd.__version__

1.0.0rc0

运用 Dataframe.info 更好地主动汇总数据帧

我最喜爱的新功用是改进后的 Dataframe.info (http://dataframe.info/) 办法。它运用一种可读性更强的格局,让数据探究进程变得更简单。

>>> df = pd.Dataframe({

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

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

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

...:})

>>> df.info()

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

支撑 Markdown 表格作为输出格局

我第二喜爱的功用是用 Dataframe.to_markdown 办法,把数据帧导出到 Markdown 表格中。

>>> df.to_markdown()

| | A | B | C |

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

| 0 | 1 | goodbye | False |

| 1 | 2 | cruel | True |

| 2 | 3 | world | False |

这样做才能够经过 GitHub Gist,在 Medium 等处更简单地展现数据。

新数据类型:布尔值和字符串

Pandas 1.0 还试验性地引入了新的数据类型:布尔值和字符串。

因为这些改动是试验性的,因而数据类型的 API 或许会有细微的变化,所以用户在运用时必须慎重操作。不过,Pandas 引荐用户合理运用这些数据类型,在未来的版别中也将改进特定类型运算的功用,比方正则表达式匹配(Regex Match)。

默许情况下,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: 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

留意现在的 Dtype 列是怎么反映新数据类型 string 和 bool 的。

字符串数据类型最大的用途是,你能够从数据帧中只挑选字符串列,这样就能够更快地剖析数据会集的文本。

df.select_dtypes("string")

在此之前,你只能经过指定称号来挑选字符串类型列。

更多有关新数据类型的阐明,拜见:https://dev.pandas.io/docs/user_guide/text.html?highlight=string。

弃用

新版别弃用了许多功用。不过最有必要留意一下的是,从 DataframeGroupBy 目标中挑选列时,输入 key 列表或 key 元组的办法已被弃用。现在要用 item 列表,而非键列表。

另一个最常用的变化出现在 Dataframe.hist() 和 Series.his() 中。现在 figsize 没有默许值,要想指定绘图的巨细,需求输入元组。

Bug 修正

新版别还修正了很多 bug,提高了数据剖析的可信度。

此前,在遇到分类数据以外的值时,fillna() 会引发 ValueError。因而,它现在归入 assert 来测验不一致,并处理反常。

别的,在将分类数据转换为整数时,也会发生过错的输出。特别是关于 NaN 值,其输出往往是过错的。因而,新版 Pandas 修正了这个 bug。

原文链接:https://towardsdatascience.com/top-features-of-pandas-1-0-26abff08d1b6

本文为机器之心编译,转载请联络本大众号取得授权。

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

参加机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报导:content@jiqizhixin.com

广告 & 商务协作:bd@jiqizhixin.com

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!