要比一般的熊更聪明就需要知道的一切

Pandas开发团队刚刚发布了第一个Pandas1.0.0版本的候选版本。 在本文中,我将回答您的紧迫问题,讨论主要更改,并向您展示如何立即开始使用新版本。

Your average bear

Pandas

Pandas是最受欢迎的Python库,用于清理,浏览和处理数据。 它将命名行和列添加到NumPy的ndarray数据结构中。 并且它添加了许多便利的方法,使处理数据更加容易。 熊猫是Python成为数据科学家和数据工程师的主导语言的重要原因。

我们走吧!

我们正在谈论的是1.0。 这有很多重大变化吗?

并不是的。 1.0标签并不意味着与2020年1月22日的当前稳定版本0.25.3会有很大的不同。您将看到,变化不大。

1.0版本也并不表示该语言已达到主要的成熟点。 Pandas是一个相当稳定的库,已经在生产代码中使用了多年。 Wes McKinney于2008年开始使用该库。GitHub表示,截至本文撰写时,它已在约170,000个GitHub存储库中使用。

1.0的更改在短期内可能会带来更多的复杂性,但是从长远来看,它们为该语言奠定了更好的基础。

A good foundation is a gift

新功能

除了通常的错误修复和较小的API清理外,pandas 1.0.0还引入了一些主要功能。

pd.NA

在pandas 0.25中,根据列的dtype,DataFrame可以具有三个不同的值-np.nan,None或pd.NaT-表示丢失的数据。

许多人面临的具有缺失值的最大障碍是,具有缺失值的整数列会自动转换为float。 kes

目前的状况主要是由于底层NumPy库的功能所致。 为了改善这种状况,熊猫开发团队创造了一个新的价值,以代表几种dtypes的缺失数据。 如即将发布的1.0文档中所述:

从pandas 1.0开始,可以使用实验性的pd.NA值(单例)来表示标量缺失值。 目前,它在可为空的整数,布尔值和专用字符串数据类型中用作缺失值指示符。

pd.NA的目标是[提供]可以在各种数据类型上一致使用的"缺失"指示器(而不是np.nan,None或pd.NaT,具体取决于数据类型)。

从长远来看,缺少数据的单个值并避免将缺少数据的整数列自动转换为浮点数听起来不错! 在短期内,它还会创造更多要学习和记住的东西。

使用新的pd.NA的一个陷阱是,您无法将其直接与布尔条件下的值进行比较。 所以没有pd.NA ==。 相反,可以使用df.isna()返回布尔掩码,以代替DataFrame中缺少的值。

而且,pd.NA通过逻辑操作传播的方式与熊猫中其他丢失的数据值不同。 pd.NA遵循三值逻辑规则-与R和SQL相似。 例如,如果pd.NA的or条件中的值之一为True,则结果为True,并且pd.NA不会传播。 这是三值逻辑的备忘单:

有关更多讨论,请参阅文档。

让我们看一下可以容纳pd.NA的三种dtype。

可空整数Dtype

如果要使用新的pd.NA并避免将int强制转换为浮点型,则现在必须指定特殊的可为空的整数dtype Int64-注意大写字母I。此dtype与您知道的标准int64 NumPy dtype不同 和爱。 ❤️

这是制作带有整数dtype列(以通常的别名导入pandas和NumPy)的DataFrame的旧方法:

pd.DataFrame([1, 2, np.nan])

结果是:

注意自动类型转换为浮点型。

这是创建可处理pd.NA的列的方法。

pd.DataFrame([1, 2, np.nan], dtype="Int64")

在创建Series或DataFrame时只需指定dtype =" Int64"即可获得可为空的整数dtype。

该列仍具有整数! 还有新的。

关于int64和Int64的棘手问题-对于熊猫版本,只有一个大写字母I,而对于现有NumPy版本,只有一个小写字母i似乎会引起一些混乱。 ☹️

Confused?

布尔值dtype

如果引入缺少的值,则布尔dtype列将转换为对象dtype。 如果要使用缺少pd.NA值的布尔整数列,请使用dtype布尔值指定该列。

方法如下:

pd.DataFrame([True, False, np.nan], dtype="boolean")

同样,这很酷,但是布尔型dtype可能会与现有的bool dtype混淆。

我们来看一个新的字符串dtype。

New string

字符串dtype

至少乍一看,一种新的,更直观的文本数据类型对我来说是一个好主意。 目前,对象dtype是文本数据和其他任何不属于另一类别的数据的统称。

字符串dtype使用pd.NA表示缺少的值,节省了内存,并传达您只希望列中的文本值。 现在,您需要指定所需的内容。 具体操作如下:

pd.DataFrame(['a', 'b'], dtype='string')

这些更改的短期缺点是,现在缺少值和dtypes的细微差别更加明显。 ☹️好的方面是,熊猫已经朝着更直观地处理整个API中缺失值的方向迈出了一大步。

值得注意的其他变化

· 该文档具有漂亮的外观,并新增了有关扩展到大型数据集的部分。

· 大熊猫团队将开始使用语义版本控制的宽松变体来管理弃用,API兼容性和版本编号。

· 您可以使用to_markdown()将DataFrame输出为Markdown表。

· pandas.util.testing模块已被弃用。 我喜欢用它快速制作具有各种数据类型的DataFrame。 但是,您可以通过其他几种方法来创建这样的DataFrames,但似乎并没有得到广泛的使用。 从好的方面来说,这是一门少学的东西,我可以将其从即将出版的熊猫书中删除。

· 熊猫1.0.0支持Python 3.6.1及更高版本。

Change

如何安装候选版本?

使用pip安装候选版本的方法如下:

pip install --pre pandas==1.0.0rc0

您绝对不希望在主环境中安装候选版本。 我建议您使用Python的内置venv创建虚拟环境。 因此,要使用Python 3.8创建虚拟环境,您将:

python3.8 -m venv my_envsource my_env/bin/activate

这是在Conda上安装熊猫和Jupyter Lab的方法:

conda create -n pandascfj -c conda-forge/label/rc -c conda-forge pandas==1.0.0rc0 jupyterlab

不要尝试将候选发布版本安装到常规的conda环境中。 您可能会看到导致安装失败的各种程序包冲突。 希望在1.0.0正式发布时,这些冲突能够得到解决。

说到…

1.0.0正式版本何时发布?

截至撰写本文时,1.0.0的截止日期是2020年2月1日。很快,所以我们看看它是否发布。

向不断努力改善熊猫的人们大声呼喊! 谢谢!

忠告

如果您喜欢前沿技术,请查看pandas 1.0.0的候选发布者。 否则,请等待几周以等待正式的1.0.0版本。

如果您一直在关注最新的Pandas版本,并且对弹出的警告进行了处理,那么1.0版本应该不会太粗糙。 但是,您在以前的Pandas版本中看到的许多警告现在都会出错,因此请小心。

如果您还不了解Vanilla Python,请阅读《 Memorable Python》。

总结

我希望您发现此Pandas1.0指南有用。 如果您这样做了,请在您喜欢的社交媒体上分享它,以便其他人也可以找到它。

(本文翻译自Jeff Hale的文章《What's New in Pandas 1.0? 》,参考:https://towardsdatascience.com/whats-new-in-pandas-1-0-ffa99bd43a58)

去除0值和nan_Pandas 1.0的新功能相关推荐

  1. Windows Mobile 5.0 中为开发人员提供的新功能(3)

    Windows Mobile 5.0 中为开发人员提供的新功能(3) Pocket Outlook 增强功能 Pocket Outlook 向用户和应用程序开发人员提供了易于使用的 PIM.将 Poc ...

  2. portlet 2.0_Java Portlet规范V2.0(JSR 286)中有哪些新功能?

    Portlet是组件化的面向用户的应用程序,可创建某种标记. 该标记旨在与其他标记片段聚合到一个更大的应用程序中,例如,如图1所示的门户页面. 图1.一个样本门户页面 因此,可以将Portlet视为基 ...

  3. Kuma 1.0 GA发布,70多项新功能和改进

    喜欢就关注我们吧! Kuma 1.0 GA 现已发布,包含了 70 多种新功能和改进.Kuma 是一个现代的通用服务网格控制平面,基于 Envoy 搭建,Envoy 是一个为云原生应用设计的强大的代理 ...

  4. 全面支持 PyTorch 2.0:BladeDISC 5 月~11 月新功能发布

    作者:BladeDISC研发团队 BladeDISC 上一次更新主要发布了 GPU AStitch 优化,方法来源于我们发表在 ASPLOS 2022上的论文AStitch.这一次,我们发布了 0.3 ...

  5. Android 8.0 正式发布,Google 带来了哪些新功能?

    文/屠敏 2017 年 8 月 21 日,随着日全食的到来,此前一直猜测是 OREO(奥利奥)还是 Orellete(加泰罗尼亚的点心)的 Android 8.0 最终拉开帷幕,Google 正式采取 ...

  6. Camtasia2023.0.1CS电脑录制屏幕动作工具新功能介绍

    Camtasia Studio是一款专门录制屏幕动作的工具,它能在任何颜色模式下轻松地记录 屏幕动作,包括影像.音效.鼠标移动轨迹.解说声音等等,另外,它还具有即时播放和编 辑压缩的功能,可对视频片段 ...

  7. Guitar Pro8.0吉他打谱作曲中文版有哪些新功能?

    很多人在听到Guitar Pro这个名词时,本能反应就是跟吉他有关的软件吧,但是具体是什么样子,有什么功能我们却不一定知道的那么详细,下面呢,我们就来详细的介绍下Guitar Pro这款软件.最后,G ...

  8. mysql 8.0.18安装,mysql 8.0.18 安装配置方法图文教程

    mysql 8.0.18 安装配置方法图文教程 本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 第一步:下载MySql 下载地址:MySQL 第二步:安装MySql 打 ...

  9. 两千字揭密 MySQL 8.0.19 三大索引新功能:隐藏索引,降序索引,函数索引

    导读:本文详细介绍 MySQL 8.0.19 三大索引新功能,隐藏索引,降序索引,函数索引,结合其他同仁的技术应用案例,进一步进行验证改编,最后总结心得,希望对大家有帮助. MySQL 8.0 版本带 ...

最新文章

  1. 微信小程序中换行,空格(多个空格)写法
  2. 没有人会尊重弱者,把弱者当成朋友!人们永远追随强者,永远和强者结盟!
  3. automation服务器不能创建对象是什么意思_从运营商角度来考虑为什么NAT不能搭建服务器?...
  4. spring aop 如何切面到mvc 的controller--转载
  5. 当电桥为恒流源时惠斯通电桥电压的计算方法
  6. 【JS 逆向百例】webpack 改写实战,G 某游戏 RSA 加密
  7. Numpy 基础 一
  8. python xlwings 切片_Python xlwings库学习笔记(1)
  9. pandas 转化np数据_利用Python进行数据分析(语法篇)
  10. VSCode搭建STM32开发环境
  11. android监听软键盘弹出弹回事件
  12. 外贸邮箱能群发吗?用哪个外贸邮箱发开发信回复率高?
  13. Android 广告图片 全屏图片适配方案的思路
  14. mpegtsenc.c的源码
  15. 光伏发电最大功率点跟踪MPPT(粒子群算法)
  16. Golang 中 map 探究
  17. Unity 代码实现形成圆形及形成球形
  18. 2020春季学期哈工大软件构造学习心得四
  19. android最新版本和发布时间,Android12正式版发布时间-什么时候更新
  20. Linux-Centos7搭建k8s前系统配置项

热门文章

  1. 邮件被暴力破解邮件网关如何解决
  2. 【转】SQL存储结构(页)
  3. PostgreSQL创建数据库时报错:ERROR: source database template1 is being accessed by other users
  4. linux c 调试 strace 诊断 调试程序 异常退出 崩溃
  5. python3 socket 超时设置
  6. python3 value查key的三种方法
  7. CSDN博客转载攻略
  8. printf 中转义字符大全
  9. __cplusplus与extern C
  10. VC++下使用md5函数