pandas-use-of-pd-merge (PD015)
Added in v0.0.188 · Related issues · View source
Derived from the pandas-vet linter.
What it does
Checks for uses of pd.merge on Pandas objects.
Why is this bad?
In Pandas, the .merge method (exposed on, e.g., DataFrame objects) and
the pd.merge function (exposed on the Pandas module) are equivalent.
For consistency, prefer calling .merge on an object over calling
pd.merge on the Pandas module, as the former is more idiomatic.
Further, pd.merge is not a method, but a function, which prohibits it
from being used in method chains, a common pattern in Pandas code.
Example
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.
Use instead:
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)