2019 年 pandas 用户调查

pandas 最近进行了一项用户调查,以帮助指导未来的开发。感谢所有参与者!本文介绍了主要结果。

您可以在 GitHub 上找到此分析和原始数据,并在 Binder 上运行

Binder

在 2019 年夏天进行调查的 15 天里,我们收到了大约 1250 份回复。

关于受访者

在 pandas 经验和使用频率方面有相当多的代表性,尽管大多数受访者经验更丰富。

png

png

我们包含了一些在 Python 开发者调查中也提出的问题,以便我们可以比较 pandas 用户与 Python 用户的群体。

90% 的受访者使用 Python 作为主要语言(PSF 调查中的比例为 84%)。

Yes    90.67%
No      9.33%
Name: Is Python your main language?, dtype: object

Windows 用户占比很高(请参阅 Steve Dower 关于此主题的演讲)。

Linux      61.57%
Windows    60.21%
MacOS      42.75%
Name: What Operating Systems do you use?, dtype: object

对于环境隔离,conda 是最受欢迎的。

png

大多数受访者只使用 Python 3。

3        92.39%
2 & 3     6.80%
2         0.81%
Name: Python 2 or 3?, dtype: object

pandas API

开源项目很难知道哪些功能是实际被使用的。我们问了一些问题来了解情况。

CSV 和 Excel 是(无论好坏)最流行的格式。

png

为了准备可能重构 pandas 内部结构,我们想了解拥有大量列(100 列或更多)的 DataFrame 的普遍程度。

png

pandas 正在缓慢增加新的扩展类型。Categoricals 是最受欢迎的,可空整数类型已经几乎和带时区的日期时间一样受欢迎。

png

更多更好的示例似乎是一个高优先级的开发项。pandas 最近获得了 NumFOCUS 资助,用于改进我们的文档,我们正利用这笔资金编写教程式文档,这应该有助于满足这一需求。

png

我们还询问了一些特定、常见的功能需求。

png

其中,最突出的明确需求是针对大型数据集的“扩缩”(scaling)。以下是一些观察结果:

  1. 也许 pandas 的文档应该更好地推广提供可伸缩 DataFrame 的库(例如 Dask, vaex, 和 modin
  2. 内存效率(可能来自于原生字符串数据类型、更少的内部复制等)是一个有价值的目标。

之后,下一个最关键的改进是整数缺失值。这些实际上已在 Pandas 0.24 中添加,但它们不是默认设置,并且与 pandas API 的其余部分仍然存在一些不兼容性。

相较于 NumPy 等库,pandas 是一个不那么保守的库。我们正在接近 1.0 版本,在此过程中我们进行了许多弃用并做了一些彻底的 API 破坏性更改。幸运的是,大多数人对这种权衡感到满意。

Yes    94.89%
No      5.11%
Name: Is Pandas stable enough for you?, dtype: object

有一种看法(许多 pandas 维护者也持有这种看法)认为 pandas 的 API 过大。为了衡量这一点,我们询问用户是否认为 pandas 的 API 过大、过小或刚刚好。

png

最后,我们询问了对库的总体满意度,范围从 1 分(非常不满意)到 5 分(非常满意)。

png

大多数人非常满意。平均得分为 4.39 分。我期待随着时间的推移追踪这个数字。

如果您正在分析原始数据,请务必通过 @pandas_dev 与我们分享结果。