|
|
51CTO旗下网站
|
|
移动端

带你一起盘点,Pandas1.0的主要功能

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

作者:读芯术来源:读芯术|2020-02-11 12:41

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

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

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

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

  1. pip install --upgradepandas==1.0.0rc0 

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

  1. $ pip --version 
  2. pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)$ python--version 
  3. Python 3.7.5 

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

  1. >>> import pandas as pd 
  2. >>> pd.__version__ 
  3. 1.0.0rc0 

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

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

  1. >>> df = pd.DataFrame({ 
  2. ...:   'A': [1,2,3],  
  3. ...:   'B': ["goodbye","cruel", "world"],  
  4. ...:   'C': [False, True, False] 
  5. ...:}) 
  6. >>> df.info() 
  7. <class 'pandas.core.frame.DataFrame'> 
  8. RangeIndex: 3 entries, 0 to 2 
  9. Data columns (total 3 columns): 
  10.  #  Column  Non-Null Count  Dtype 
  11. ---  ------  --------------  ----- 
  12.  0  A       3 non-null      int64 
  13.  1  B       3 non-null      object 
  14.  2  C       3 non-null      object 
  15. dtypes: int64(1), object(2) 
  16. memory usage: 200.0+ bytes 

Markdown表的输出格式

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

  1. >>> df.to_markdown() 
  2. |    |  A | B       | C     | 
  3. |---:|----:|:--------|:------| 
  4. |  0 |  1 | goodbye | False | 
  5. |  1 |  2 | cruel   | True  | 
  6. |  2 |  3 | world   | False | 

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

booleans and strings的新数据类型

来源:Pexels

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

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

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

  1. >>> B =pd.Series(["goodbye", "cruel", "world"],dtype="string"
  2. >>> C = pd.Series([False, True, False], dtype="bool"
  3. >>> df.B = B, df.C = C 
  4. >>> df.info() 
  5. <class 'pandas.core.frame.DataFrame'> 
  6. RangeIndex: 3 entries, 0 to 2 
  7. Data columns (total 3 columns): 
  8.  #  Column  Non-Null Count  Dtype 
  9. ---  ------  --------------  ----- 
  10.  0  A       3 non-null      int64 
  11.  1  B       3 non-null      string 
  12.  2  C       3 non-null      bool 
  13. dtypes: int64(1), object(1), string(1) 
  14. memory usage: 200.0+ bytes 

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

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

  1. df.select_dtypes("string") 

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

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

【编辑推荐】

  1. 2020年,5大优秀数据分析预测
  2. 云计算对大数据来说是巨大的创新潜力
  3. 2020年数据和分析的10个预测和优先事项
  4. 企业微信发布全国远程办公大数据,北京、深圳、上海开会次数最高
  5. 抗“疫”战争期间,各地政府该如何运用大数据技术?
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

Python应用场景实战手册

Python应用场景实战手册

Python应用场景实战手册
共3章 | KaliArch

122人订阅学习

一步到位玩儿透Ansible

一步到位玩儿透Ansible

Ansible
共17章 | 骏马金龙1

207人订阅学习

云架构师修炼手册

云架构师修炼手册

云架构师的必备技能
共3章 | Allen在路上

144人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微