跳到内容

pandas-use-of-pd-merge (PD015)

源自 pandas-vet linter。

作用

检查 Pandas 对象上 pd.merge 的使用情况。

为什么这不好?

在 Pandas 中,.merge 方法(例如,在 DataFrame 对象上公开)和 pd.merge 函数(在 Pandas 模块上公开)是等效的。

为了保持一致性,建议首选在对象上调用 .merge,而不是在 Pandas 模块上调用 pd.merge,因为前者更符合习惯用法。

此外,pd.merge 不是一个方法,而是一个函数,这使得它无法在方法链中使用,而方法链是 Pandas 代码中的常见模式。

示例

import pandas as pd

cats_df = pd.read_csv("cats.csv")
dogs_df = pd.read_csv("dogs.csv")
rabbits_df = pd.read_csv("rabbits.csv")
pets_df = pd.merge(pd.merge(cats_df, dogs_df), rabbits_df)  # Hard to read.

建议改为

import pandas as pd

cats_df = pd.read_csv("cats.csv")
dogs_df = pd.read_csv("dogs.csv")
rabbits_df = pd.read_csv("rabbits.csv")
pets_df = cats_df.merge(dogs_df).merge(rabbits_df)

参考