跳转到主要内容

一个以有见地的角度对pandas进行lint的工具。

项目描述

pandas-vet

pandas-vet 是一个用于 flake8 的插件,它为 pandas 代码提供了有见地的lint。

Documentation Status

Test and lint Code style: black PyPI - License

PyPI PyPI - Status PyPI - Downloads

Conda Version Conda Downloads

基本用法

以下是一个名为 drop_column.py 的脚本,其中包含有效的pandas代码

# drop_column.py
import pandas

df = pandas.DataFrame({
    'col_a': [i for i in range(20)],
    'col_b': [j for j in range(20, 40)]
})
df.drop(columns='col_b', inplace=True)

安装了 pandas-vet 后,如果我们在此脚本上运行Flake8,我们将看到三个警告被触发。

$ flake8 drop_column.py

./drop_column.py:2:1: PD001 pandas should always be imported as 'import pandas as pd'
./drop_column.py:4:1: PD901 'df' is a bad variable name. Be kinder to your future self.
./drop_column.py:7:1: PD002 'inplace = True' should be avoided; it has inconsistent behavior

我们可以使用这些来改进代码。

# pandastic_drop_column.py
import pandas as pd

ab_dataset = pd.DataFrame({
    'col_a': [i for i in range(20)],
    'col_b': [j for j in range(20, 40)]
})
a_dataset = ab_dataset.drop(columns='col_b')

有关完整列表,请参阅文档的 支持警告 页面。

动机

pandas 开始可能会有点困难。互联网上的常见帮助站点充斥着不同的实现方式,以及一些pandas文档本身也劝阻使用的功能。 pandas-vet (希望) 通过对pandas最佳实践的一些有见地的立场,帮助使pandas对新手来说更加友好。它旨在帮助用户减少pandas的宇宙。

创建lint的想法源于 Ania Kapuścińska 在2019年PyCascades上的演讲,"负责任地lint代码!"。该软件包主要是在2019年PyCascades冲刺期间开发的。

许多观点源自于 Ted Petrou 的优秀作品 《最小必要Pandas》。其他想法来源于pandas文档或其他地方。《Pandas黑白卡片》中也包含许多相同的观点。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

pandas_vet-2023.8.2.tar.gz (9.0 kB 查看哈希值)

上传时间 源代码

构建分发

pandas_vet-2023.8.2-py3-none-any.whl (7.4 kB 查看哈希值)

上传时间 Python 3

支持者