diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 694ff60166d43..72c9fe51be7f3 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -1524,7 +1524,7 @@ def iterrows(self) -> Iterable[tuple[Hashable, Series]]: """ columns = self.columns klass = self._constructor_sliced - for k, v in zip(self.index, self.values): + for k, v in zip(self.index, self.values, strict=True): s = klass(v, index=columns, name=k).__finalize__(self) if self._mgr.is_single_block: s._mgr.add_references(self._mgr) @@ -1607,10 +1607,10 @@ def itertuples( itertuple = collections.namedtuple( # type: ignore[misc] name, fields, rename=True ) - return map(itertuple._make, zip(*arrays)) + return map(itertuple._make, zip(*arrays, strict=True)) # fallback to regular tuples - return zip(*arrays) + return zip(*arrays, strict=True) def __len__(self) -> int: """ @@ -4359,7 +4359,7 @@ def _setitem_array(self, key, value) -> None: if isinstance(value, DataFrame): check_key_length(self.columns, key, value) - for k1, k2 in zip(key, value.columns): + for k1, k2 in zip(key, value.columns, strict=False): self[k1] = value[k2] elif not is_list_like(value): @@ -4465,7 +4465,7 @@ def _set_item_frame_value(self, key, value: DataFrame) -> None: if len(cols_droplevel) and not cols_droplevel.equals(value.columns): value = value.reindex(cols_droplevel, axis=1) - for col, col_droplevel in zip(cols, cols_droplevel): + for col, col_droplevel in zip(cols, cols_droplevel, strict=True): self[col] = value[col_droplevel] return @@ -6567,7 +6567,11 @@ class max type names = self.index._get_default_index_names(names, default) if isinstance(self.index, MultiIndex): - to_insert = zip(reversed(self.index.levels), reversed(self.index.codes)) + to_insert = zip( + reversed(self.index.levels), + reversed(self.index.codes), + strict=True, + ) else: to_insert = ((self.index, None),) @@ -7093,7 +7097,7 @@ def f(vals) -> tuple[np.ndarray, int]: result.name = None else: vals = (col.values for name, col in self.items() if name in subset) - labels, shape = map(list, zip(*map(f, vals))) + labels, shape = map(list, zip(*map(f, vals), strict=True)) ids = get_group_index(labels, tuple(shape), sort=False, xnull=False) result = self._constructor_sliced(duplicated(ids, keep), index=self.index) @@ -7346,7 +7350,9 @@ def sort_values( # need to rewrap columns in Series to apply key function if key is not None: - keys_data = [Series(k, name=name) for (k, name) in zip(keys, by)] + keys_data = [ + Series(k, name=name) for (k, name) in zip(keys, by, strict=True) + ] else: # error: Argument 1 to "list" has incompatible type # "Generator[ExtensionArray | ndarray[Any, Any], None, None]"; @@ -8208,7 +8214,7 @@ def _dispatch_frame_op( arrays = [ array_op(_left, _right) - for _left, _right in zip(self._iter_column_arrays(), right) + for _left, _right in zip(self._iter_column_arrays(), right, strict=True) ] elif isinstance(right, Series): @@ -11745,7 +11751,7 @@ def c(x): return nanops.nancorr(x[0], x[1], method=method) correl = self._constructor_sliced( - map(c, zip(left.values.T, right.values.T)), + map(c, zip(left.values.T, right.values.T, strict=True)), index=left.columns, copy=False, )