Skip to content

Commit c352d82

Browse files
committed
PERF: frame: avoid unnecessary .values calls
Besides hstacking cols (data copy), this densified SparseDataFrame.
1 parent 5cb5880 commit c352d82

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
@@ -770,11 +770,9 @@ def iterrows(self):
770770
iteritems : Iterate over (column name, Series) pairs.
771771
772772
"""
773-
columns = self.columns
774-
klass = self._constructor_sliced
775-
for k, v in zip(self.index, self.values):
776-
s = klass(v, index=columns, name=k)
777-
yield k, s
773+
iloc = self.iloc
774+
for i, k in enumerate(self.index):
775+
yield k, iloc[i]
778776

779777
def itertuples(self, index=True, name="Pandas"):
780778
"""
@@ -2784,7 +2782,7 @@ def _getitem_multilevel(self, key):
27842782
return self._get_item_cache(key)
27852783

27862784
def _getitem_frame(self, key):
2787-
if key.values.size and not is_bool_dtype(key.values):
2785+
if key.size and not key.dtypes.map(is_bool_dtype).all():
27882786
raise ValueError('Must pass DataFrame with boolean values only')
27892787
return self.where(key)
27902788

@@ -3174,7 +3172,7 @@ def _setitem_frame(self, key, value):
31743172
)
31753173
key = self._constructor(key, **self._construct_axes_dict())
31763174

3177-
if key.values.size and not is_bool_dtype(key.values):
3175+
if key.size and not key.dtypes.map(is_bool_dtype).all():
31783176
raise TypeError(
31793177
'Must pass DataFrame or 2-d ndarray with boolean values only'
31803178
)

0 commit comments

Comments
 (0)