Skip to content

Commit b7c9c56

Browse files
authored
CLN: Prelims for stronger typing in Block methods (#32712)
1 parent 055e337 commit b7c9c56

File tree

5 files changed

+12
-6
lines changed

5 files changed

+12
-6
lines changed

pandas/core/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6509,7 +6509,7 @@ def melt(
65096509
# ----------------------------------------------------------------------
65106510
# Time series-related
65116511

6512-
def diff(self, periods=1, axis=0) -> "DataFrame":
6512+
def diff(self, periods: int = 1, axis: Axis = 0) -> "DataFrame":
65136513
"""
65146514
First discrete difference of element.
65156515

pandas/core/generic.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -8587,12 +8587,15 @@ def _where(
85878587
for dt in cond.dtypes:
85888588
if not is_bool_dtype(dt):
85898589
raise ValueError(msg.format(dtype=dt))
8590+
else:
8591+
# GH#21947 we have an empty DataFrame, could be object-dtype
8592+
cond = cond.astype(bool)
85908593

85918594
cond = -cond if inplace else cond
85928595

85938596
# try to align with other
85948597
try_quick = True
8595-
if hasattr(other, "align"):
8598+
if isinstance(other, NDFrame):
85968599

85978600
# align with me
85988601
if other.ndim <= self.ndim:

pandas/core/internals/managers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -569,8 +569,8 @@ def setitem(self, indexer, value) -> "BlockManager":
569569
def putmask(self, **kwargs):
570570
return self.apply("putmask", **kwargs)
571571

572-
def diff(self, **kwargs) -> "BlockManager":
573-
return self.apply("diff", **kwargs)
572+
def diff(self, n: int, axis: int) -> "BlockManager":
573+
return self.apply("diff", n=n, axis=axis)
574574

575575
def interpolate(self, **kwargs) -> "BlockManager":
576576
return self.apply("interpolate", **kwargs)

pandas/core/series.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,7 @@ def __getitem__(self, key):
872872

873873
if com.is_bool_indexer(key):
874874
key = check_bool_indexer(self.index, key)
875+
key = np.asarray(key, dtype=bool)
875876
return self._get_values(key)
876877

877878
return self._get_with(key)
@@ -993,6 +994,7 @@ def __setitem__(self, key, value):
993994

994995
if com.is_bool_indexer(key):
995996
key = check_bool_indexer(self.index, key)
997+
key = np.asarray(key, dtype=bool)
996998
try:
997999
self._where(~key, value, inplace=True)
9981000
return
@@ -2240,7 +2242,7 @@ def cov(self, other, min_periods=None) -> float:
22402242
return np.nan
22412243
return nanops.nancov(this.values, other.values, min_periods=min_periods)
22422244

2243-
def diff(self, periods=1) -> "Series":
2245+
def diff(self, periods: int = 1) -> "Series":
22442246
"""
22452247
First discrete difference of element.
22462248

pandas/tests/frame/indexing/test_where.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,8 @@ def test_where_none(self):
397397
def test_where_empty_df_and_empty_cond_having_non_bool_dtypes(self):
398398
# see gh-21947
399399
df = pd.DataFrame(columns=["a"])
400-
cond = df.applymap(lambda x: x > 0)
400+
cond = df
401+
assert (cond.dtypes == object).all()
401402

402403
result = df.where(cond)
403404
tm.assert_frame_equal(result, df)

0 commit comments

Comments
 (0)