Skip to content

Commit cf7a325

Browse files
committed
Replace
1 parent dca4fe9 commit cf7a325

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

asv_bench/benchmarks/join_merge.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ def time_merge_dataframes_cross(self, sort):
273273
merge(self.left.loc[:2000], self.right.loc[:2000], how="cross", sort=sort)
274274

275275
def time_merge_semi(self, sort):
276-
merge(self.df, self.df2, on="key1", how="leftsemi")
276+
merge(self.df, self.df2, on="key1", how="left_semi")
277277

278278

279279
class MergeEA:
@@ -384,7 +384,7 @@ def time_merge(self, units, tz, monotonic):
384384
merge(self.left, self.right)
385385

386386
def time_merge_semi(self, units, tz, monotonic):
387-
merge(self.left, self.right, how="leftsemi")
387+
merge(self.left, self.right, how="left_semi")
388388

389389

390390
class MergeCategoricals:

doc/source/user_guide/merging.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ either the left or right tables, the values in the joined table will be
407407
``right``, ``RIGHT OUTER JOIN``, Use keys from right frame only
408408
``outer``, ``FULL OUTER JOIN``, Use union of keys from both frames
409409
``inner``, ``INNER JOIN``, Use intersection of keys from both frames
410-
``leftsemi``, ``LEFT SEMI JOIN``, Filter rows on left based on occurrences in right.
410+
``left_semi``, ``LEFT SEMI JOIN``, Filter rows on left based on occurrences in right.
411411
``cross``, ``CROSS JOIN``, Create the cartesian product of rows of both frames
412412

413413
.. ipython:: python

pandas/core/frame.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@
338338
join; sort keys lexicographically.
339339
* inner: use intersection of keys from both frames, similar to a SQL inner
340340
join; preserve the order of the left keys.
341-
* leftsemi: Filter for rows in the left that have a match on the right;
341+
* left_semi: Filter for rows in the left that have a match on the right;
342342
preserve the order of the left keys. Doesn't support `left_index`, `right_index`,
343343
`indicator` or `validate`.
344344

pandas/core/reshape/merge.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ def merge(
385385
validate=validate,
386386
)
387387
else:
388-
klass = _MergeOperation if how != "leftsemi" else _SemiMergeOperation
388+
klass = _MergeOperation if how != "left_semi" else _SemiMergeOperation
389389
op = klass(
390390
left_df,
391391
right_df,
@@ -2038,7 +2038,7 @@ def get_join_indexers(
20382038
left_keys: list[ArrayLike],
20392039
right_keys: list[ArrayLike],
20402040
sort: bool = False,
2041-
how: JoinHow + Literal["leftsemi"] = "inner",
2041+
how: JoinHow + Literal["left_semi"] = "inner",
20422042
) -> tuple[npt.NDArray[np.intp] | None, npt.NDArray[np.intp] | None]:
20432043
"""
20442044
@@ -2095,7 +2095,7 @@ def get_join_indexers(
20952095
right = Index(rkey)
20962096

20972097
if (
2098-
how != "leftsemi"
2098+
how != "left_semi"
20992099
and left.is_monotonic_increasing
21002100
and right.is_monotonic_increasing
21012101
and (left.is_unique or right.is_unique)
@@ -2868,7 +2868,7 @@ def _factorize_keys(
28682868
lk = ensure_int64(lk.codes)
28692869
rk = ensure_int64(rk.codes)
28702870

2871-
elif how != "leftsemi" and isinstance(lk, ExtensionArray) and lk.dtype == rk.dtype:
2871+
elif how != "left_semi" and isinstance(lk, ExtensionArray) and lk.dtype == rk.dtype:
28722872
if (isinstance(lk.dtype, ArrowDtype) and is_string_dtype(lk.dtype)) or (
28732873
isinstance(lk.dtype, StringDtype) and lk.dtype.storage == "pyarrow"
28742874
):
@@ -2964,7 +2964,7 @@ def _factorize_keys(
29642964
return lidx, ridx, -1
29652965
else:
29662966
llab = rizer.factorize(lk_data, mask=lk_mask)
2967-
elif how == "leftsemi":
2967+
elif how == "left_semi":
29682968
# populate hashtable for right and then do a hash join
29692969
rizer.factorize(rk_data, mask=rk_mask)
29702970
return rizer.hash_inner_join(lk_data, lk_mask)[1], None, -1 # type: ignore[return-value]

pandas/tests/reshape/merge/test_semi.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,42 +19,42 @@
1919
),
2020
],
2121
)
22-
def test_leftsemi(vals_left, vals_right, dtype):
22+
def test_left_semi(vals_left, vals_right, dtype):
2323
vals_left = pd.Series(vals_left, dtype=dtype)
2424
vals_right = pd.Series(vals_right, dtype=dtype)
2525
left = pd.DataFrame({"a": vals_left, "b": [1, 2, 3]})
2626
right = pd.DataFrame({"a": vals_right, "c": 1})
2727
expected = pd.DataFrame({"a": vals_right, "b": [1, 2]})
28-
result = left.merge(right, how="leftsemi")
28+
result = left.merge(right, how="left_semi")
2929
tm.assert_frame_equal(result, expected)
3030

3131
right = pd.DataFrame({"d": vals_right, "c": 1})
32-
result = left.merge(right, how="leftsemi", left_on="a", right_on="d")
32+
result = left.merge(right, how="left_semi", left_on="a", right_on="d")
3333
tm.assert_frame_equal(result, expected)
3434

3535
right = pd.DataFrame({"d": vals_right, "c": 1})
36-
result = left.merge(right, how="leftsemi", left_on=["a", "b"], right_on=["d", "c"])
36+
result = left.merge(right, how="left_semi", left_on=["a", "b"], right_on=["d", "c"])
3737
tm.assert_frame_equal(result, expected.head(1))
3838

3939

40-
def test_leftsemi_invalid():
40+
def test_left_semi_invalid():
4141
left = pd.DataFrame({"a": [1, 2, 3], "b": [1, 2, 3]})
4242
right = pd.DataFrame({"a": [1, 2], "c": 1})
4343

4444
msg = "left_index or right_index are not supported for semi-join."
4545
with pytest.raises(NotImplementedError, match=msg):
46-
left.merge(right, how="leftsemi", left_index=True, right_on="a")
46+
left.merge(right, how="left_semi", left_index=True, right_on="a")
4747
with pytest.raises(NotImplementedError, match=msg):
48-
left.merge(right, how="leftsemi", right_index=True, left_on="a")
48+
left.merge(right, how="left_semi", right_index=True, left_on="a")
4949

5050
msg = "validate is not supported for semi-join."
5151
with pytest.raises(NotImplementedError, match=msg):
52-
left.merge(right, how="leftsemi", validate="one_to_one")
52+
left.merge(right, how="left_semi", validate="one_to_one")
5353

5454
msg = "indicator is not supported for semi-join."
5555
with pytest.raises(NotImplementedError, match=msg):
56-
left.merge(right, how="leftsemi", indicator=True)
56+
left.merge(right, how="left_semi", indicator=True)
5757

5858
msg = "sort is not supported for semi-join. Sort your DataFrame afterwards."
5959
with pytest.raises(NotImplementedError, match=msg):
60-
left.merge(right, how="leftsemi", sort=True)
60+
left.merge(right, how="left_semi", sort=True)

0 commit comments

Comments
 (0)