Skip to content

Commit 2750ed0

Browse files
committed
PERF: frame: avoid unnecessary .values calls
Besides hstacking cols (data copy), this densified SparseDataFrame.
1 parent 572476f commit 2750ed0

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

pandas/core/frame.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -752,11 +752,9 @@ def iterrows(self):
752752
iteritems : Iterate over (column name, Series) pairs.
753753
754754
"""
755-
columns = self.columns
756-
klass = self._constructor_sliced
757-
for k, v in zip(self.index, self.values):
758-
s = klass(v, index=columns, name=k)
759-
yield k, s
755+
iloc = self.iloc
756+
for i, k in enumerate(self.index):
757+
yield k, iloc[i]
760758

761759
def itertuples(self, index=True, name="Pandas"):
762760
"""
@@ -2273,7 +2271,7 @@ def _getitem_multilevel(self, key):
22732271
return self._get_item_cache(key)
22742272

22752273
def _getitem_frame(self, key):
2276-
if key.values.size and not is_bool_dtype(key.values):
2274+
if key.size and not key.dtypes.map(is_bool_dtype).all():
22772275
raise ValueError('Must pass DataFrame with boolean values only')
22782276
return self.where(key)
22792277

@@ -2614,7 +2612,7 @@ def _setitem_frame(self, key, value):
26142612
)
26152613
key = self._constructor(key, **self._construct_axes_dict())
26162614

2617-
if key.values.size and not is_bool_dtype(key.values):
2615+
if key.size and not key.dtypes.map(is_bool_dtype).all():
26182616
raise TypeError(
26192617
'Must pass DataFrame or 2-d ndarray with boolean values only'
26202618
)

0 commit comments

Comments
 (0)