acidplyr.semi_join

acidplyr.semi_join(x: DataFrame, y: DataFrame, by: str | list[str]) DataFrame

Semi join: return rows from x that have matches in y.

Parameters:
  • x (pd.DataFrame) – Left DataFrame.

  • y (pd.DataFrame) – Right DataFrame, used only to test for a match.

  • by (str or list of str) – Column name(s) to join on. Must exist in both x and y with matching dtypes.

Returns:

Rows from x with a matching key in y, keeping only x’s columns.

Return type:

pd.DataFrame

Examples

>>> import pandas as pd
>>> x = pd.DataFrame({"name": ["Mick", "John", "Paul"]})
>>> y = pd.DataFrame(
...     {"name": ["John", "Paul"], "plays": ["guitar", "bass"]}
... )
>>> semi_join(x, y, by="name")["name"].tolist()
['John', 'Paul']