Skip to content

Commit f6c6408

Browse files
author
Kei
committed
Update compute_dict_like to get all columns
1 parent 7c836ed commit f6c6408

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

pandas/core/apply.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,22 @@ def compute_dict_like(
471471

472472
keys += [key] * len(key_data)
473473
results += key_data
474-
else:
474+
elif is_groupby:
475475
# key used for column selection and output
476+
477+
df = obj.obj
478+
results, keys = [], []
479+
for key, how in func.items():
480+
for index in range(df.shape[1]):
481+
col = df.iloc[:, index]
482+
if col.name != key:
483+
continue
484+
485+
series = obj._gotitem(key, ndim=1, subset=col)
486+
result = getattr(series, op_name)(how, **kwargs)
487+
results.append(result)
488+
keys.append(key)
489+
else:
476490
results = [
477491
getattr(obj._gotitem(key, ndim=1), op_name)(how, **kwargs)
478492
for key, how in func.items()
@@ -496,11 +510,14 @@ def wrap_results_dict_like(
496510
is_ndframe = [isinstance(r, ABCNDFrame) for r in result_data]
497511

498512
if all(is_ndframe):
499-
results = dict(zip(result_index, result_data))
513+
results = [result for result in result_data if not result.empty]
500514
keys_to_use: Iterable[Hashable]
501-
keys_to_use = [k for k in result_index if not results[k].empty]
515+
keys_to_use = [k for k, v in zip(result_index, result_data) if not v.empty]
502516
# Have to check, if at least one DataFrame is not empty.
503-
keys_to_use = keys_to_use if keys_to_use != [] else result_index
517+
if keys_to_use == []:
518+
keys_to_use = result_index
519+
results = result_data
520+
504521
if selected_obj.ndim == 2:
505522
# keys are columns, so we can preserve names
506523
ktu = Index(keys_to_use)
@@ -509,7 +526,7 @@ def wrap_results_dict_like(
509526

510527
axis: AxisInt = 0 if isinstance(obj, ABCSeries) else 1
511528
result = concat(
512-
{k: results[k] for k in keys_to_use},
529+
results,
513530
axis=axis,
514531
keys=keys_to_use,
515532
)

0 commit comments

Comments
 (0)