Skip to content

Commit b4889c8

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

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
@@ -785,11 +785,9 @@ def iterrows(self):
785785
iteritems : Iterate over (column name, Series) pairs.
786786
787787
"""
788-
columns = self.columns
789-
klass = self._constructor_sliced
790-
for k, v in zip(self.index, self.values):
791-
s = klass(v, index=columns, name=k)
792-
yield k, s
788+
iloc = self.iloc
789+
for i, k in enumerate(self.index):
790+
yield k, iloc[i]
793791

794792
def itertuples(self, index=True, name="Pandas"):
795793
"""
@@ -2765,7 +2763,7 @@ def _getitem_multilevel(self, key):
27652763
return self._get_item_cache(key)
27662764

27672765
def _getitem_frame(self, key):
2768-
if key.values.size and not is_bool_dtype(key.values):
2766+
if key.size and not key.dtypes.map(is_bool_dtype).all():
27692767
raise ValueError('Must pass DataFrame with boolean values only')
27702768
return self.where(key)
27712769

@@ -3153,7 +3151,7 @@ def _setitem_frame(self, key, value):
31533151
)
31543152
key = self._constructor(key, **self._construct_axes_dict())
31553153

3156-
if key.values.size and not is_bool_dtype(key.values):
3154+
if key.size and not key.dtypes.map(is_bool_dtype).all():
31573155
raise TypeError(
31583156
'Must pass DataFrame or 2-d ndarray with boolean values only'
31593157
)

0 commit comments

Comments
 (0)