Skip to content

Commit 295703b

Browse files
rthjreback
authored andcommitted
MAINT Use list and dict comprehension (#23894)
1 parent 005f44e commit 295703b

File tree

27 files changed

+73
-126
lines changed

27 files changed

+73
-126
lines changed

pandas/core/computation/align.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@ def _align_core_single_unary_op(term):
3030

3131

3232
def _zip_axes_from_type(typ, new_axes):
33-
axes = {}
34-
for ax_ind, ax_name in compat.iteritems(typ._AXIS_NAMES):
35-
axes[ax_name] = new_axes[ax_ind]
33+
axes = {ax_name: new_axes[ax_ind]
34+
for ax_ind, ax_name in compat.iteritems(typ._AXIS_NAMES)}
3635
return axes
3736

3837

pandas/core/config.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -395,11 +395,8 @@ def __init__(self, *args):
395395
self.ops = list(zip(args[::2], args[1::2]))
396396

397397
def __enter__(self):
398-
undo = []
399-
for pat, val in self.ops:
400-
undo.append((pat, _get_option(pat, silent=True)))
401-
402-
self.undo = undo
398+
self.undo = [(pat, _get_option(pat, silent=True))
399+
for pat, val in self.ops]
403400

404401
for pat, val in self.ops:
405402
_set_option(pat, val, silent=True)

pandas/core/dtypes/concat.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -373,10 +373,8 @@ def _maybe_unwrap(x):
373373
if sort_categories:
374374
categories = categories.sort_values()
375375

376-
new_codes = []
377-
for c in to_union:
378-
new_codes.append(_recode_for_categories(c.codes, c.categories,
379-
categories))
376+
new_codes = [_recode_for_categories(c.codes, c.categories, categories)
377+
for c in to_union]
380378
new_codes = np.concatenate(new_codes)
381379
else:
382380
# ordered - to show a proper error message

pandas/core/frame.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3569,11 +3569,8 @@ def reindexer(value):
35693569

35703570
@property
35713571
def _series(self):
3572-
result = {}
3573-
for idx, item in enumerate(self.columns):
3574-
result[item] = Series(self._data.iget(idx), index=self.index,
3575-
name=item)
3576-
return result
3572+
return {item: Series(self._data.iget(idx), index=self.index, name=item)
3573+
for idx, item in enumerate(self.columns)}
35773574

35783575
def lookup(self, row_labels, col_labels):
35793576
"""
@@ -3593,9 +3590,8 @@ def lookup(self, row_labels, col_labels):
35933590
-----
35943591
Akin to::
35953592
3596-
result = []
3597-
for row, col in zip(row_labels, col_labels):
3598-
result.append(df.get_value(row, col))
3593+
result = [df.get_value(row, col)
3594+
for row, col in zip(row_labels, col_labels)]
35993595
36003596
Examples
36013597
--------
@@ -4600,10 +4596,8 @@ def sort_values(self, by, axis=0, ascending=True, inplace=False,
46004596
if len(by) > 1:
46014597
from pandas.core.sorting import lexsort_indexer
46024598

4603-
keys = []
4604-
for x in by:
4605-
k = self._get_label_or_level_values(x, axis=axis)
4606-
keys.append(k)
4599+
keys = [self._get_label_or_level_values(x, axis=axis)
4600+
for x in by]
46074601
indexer = lexsort_indexer(keys, orders=ascending,
46084602
na_position=na_position)
46094603
indexer = ensure_platform_int(indexer)

pandas/core/groupby/ops.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -678,10 +678,8 @@ def groups(self):
678678

679679
# this is mainly for compat
680680
# GH 3881
681-
result = {}
682-
for key, value in zip(self.binlabels, self.bins):
683-
if key is not NaT:
684-
result[key] = value
681+
result = {key: value for key, value in zip(self.binlabels, self.bins)
682+
if key is not NaT}
685683
return result
686684

687685
@property

pandas/core/internals/blocks.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2295,10 +2295,7 @@ def convert(self, *args, **kwargs):
22952295
'convert_timedeltas']
22962296
fn_inputs += ['copy']
22972297

2298-
fn_kwargs = {}
2299-
for key in fn_inputs:
2300-
if key in kwargs:
2301-
fn_kwargs[key] = kwargs[key]
2298+
fn_kwargs = {key: kwargs[key] for key in fn_inputs if key in kwargs}
23022299

23032300
# operate column-by-column
23042301
def f(m, v, i):

pandas/core/panel.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -336,9 +336,8 @@ def _compare_constructor(self, other, func):
336336
raise Exception('Can only compare identically-labeled '
337337
'same type objects')
338338

339-
new_data = {}
340-
for col in self._info_axis:
341-
new_data[col] = func(self[col], other[col])
339+
new_data = {col: func(self[col], other[col])
340+
for col in self._info_axis}
342341

343342
d = self._construct_axes_dict(copy=False)
344343
return self._constructor(data=new_data, **d)
@@ -949,9 +948,8 @@ def to_frame(self, filter_observations=True):
949948
# size = N * K
950949
selector = slice(None, None)
951950

952-
data = {}
953-
for item in self.items:
954-
data[item] = self[item].values.ravel()[selector]
951+
data = {item: self[item].values.ravel()[selector]
952+
for item in self.items}
955953

956954
def construct_multi_parts(idx, n_repeat, n_shuffle=1):
957955
# Replicates and shuffles MultiIndex, returns individual attributes

pandas/core/reshape/melt.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,8 @@ def melt_stub(df, stub, i, j, value_vars, sep):
448448
value_vars_flattened = [e for sublist in value_vars for e in sublist]
449449
id_vars = list(set(df.columns.tolist()).difference(value_vars_flattened))
450450

451-
melted = []
452-
for s, v in zip(stubnames, value_vars):
453-
melted.append(melt_stub(df, s, i, j, v, sep))
451+
melted = [melt_stub(df, s, i, j, v, sep)
452+
for s, v in zip(stubnames, value_vars)]
454453
melted = melted[0].join(melted[1:], how='outer')
455454

456455
if len(i) == 1:

pandas/core/sparse/frame.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,9 +339,8 @@ def to_dense(self):
339339
def _apply_columns(self, func):
340340
""" get new SparseDataFrame applying func to each columns """
341341

342-
new_data = {}
343-
for col, series in compat.iteritems(self):
344-
new_data[col] = func(series)
342+
new_data = {col: func(series)
343+
for col, series in compat.iteritems(self)}
345344

346345
return self._constructor(
347346
data=new_data, index=self.index, columns=self.columns,

pandas/core/window.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2479,9 +2479,8 @@ def dataframe_from_int_dict(data, frame_template):
24792479
else:
24802480
raise ValueError("'pairwise' is not True/False")
24812481
else:
2482-
results = {}
2483-
for i, col in enumerate(arg1.columns):
2484-
results[i] = f(*_prep_binary(arg1.iloc[:, i], arg2))
2482+
results = {i: f(*_prep_binary(arg1.iloc[:, i], arg2))
2483+
for i, col in enumerate(arg1.columns)}
24852484
return dataframe_from_int_dict(results, arg1)
24862485

24872486
else:

0 commit comments

Comments
 (0)