Repository: modin-project/modin

Issue:
HDK: DataFrame.agg() does not support list of function names 
### Modin version checks

- [X] I have checked that this issue has not already been reported.

- [X] I have confirmed this bug exists on the latest released version of Modin.

- [X] I have confirmed this bug exists on the main branch of Modin. (In order to do this you can follow [this guide](https://modin.readthedocs.io/en/stable/getting_started/installation.html#installing-from-the-github-master-branch).)


### Reproducible Example

```python
import modin.pandas as pd

data = {
    "a": [1, 2, 5, -2, -5, 4, -4, 6, 3],
    "b": [1, 2, 3, 6, 5, 1, 4, 5, 3],
    "c": [5, 4, 2, 3, 1, 1, 4, 5, 6],
    "d": ["1", "4", "3", "2", "1", "6", "7", "5", "0"],
}
df = pd.DataFrame(data)
print(df.groupby("a")[["b", "c"]].agg(["mean", "std"]))
```


### Issue Description

The code above fails with error:
```
modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py", line 660, in groupby_agg
    assert isinstance(agg, dict), "unsupported aggregate type"
AssertionError: unsupported aggregate type
```

### Expected Behavior

```
      b        c    
   mean std mean std
a                   
-5  5.0 NaN  1.0 NaN
-4  4.0 NaN  4.0 NaN
-2  6.0 NaN  3.0 NaN
 1  1.0 NaN  5.0 NaN
 2  2.0 NaN  4.0 NaN
 3  3.0 NaN  6.0 NaN
 4  1.0 NaN  1.0 NaN
 5  3.0 NaN  2.0 NaN
 6  5.0 NaN  5.0 NaN
```

### Error Logs

<details>

```python-traceback

Replace this line with the error backtrace (if applicable).

```

</details>


### Installed Versions

<details>

Replace this line with the output of pd.show_versions()

</details>



Discussion:

Resolving patch:
diff --git a/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py b/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py
--- a/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py
+++ b/modin/experimental/core/execution/native/implementations/hdk_on_native/dataframe/dataframe.py
@@ -648,8 +648,9 @@ def generate_by_name(by):
         if isinstance(agg, str):
             col_to_ref = {col: base.ref(col) for col in agg_cols}
             self._add_agg_exprs(agg, col_to_ref, kwargs, agg_exprs)
-        else:
-            assert isinstance(agg, dict), "unsupported aggregate type"
+        elif isinstance(agg, (dict, list)):
+            if isinstance(agg, list):
+                agg = {col: agg for col in agg_cols}
             multiindex = any(isinstance(v, list) for v in agg.values())
             for col, aggs in agg.items():
                 if isinstance(aggs, list):
@@ -659,6 +660,9 @@ def generate_by_name(by):
                 else:
                     col_to_ref = {((col, aggs) if multiindex else col): base.ref(col)}
                     self._add_agg_exprs(aggs, col_to_ref, kwargs, agg_exprs)
+        else:
+            raise NotImplementedError(f"aggregate type {type(agg)}")
+
         new_columns.extend(agg_exprs.keys())
         new_dtypes.extend((x._dtype for x in agg_exprs.values()))
         new_columns = Index.__new__(Index, data=new_columns, dtype=self.columns.dtype)


Test patch:
diff --git a/modin/experimental/core/execution/native/implementations/hdk_on_native/test/test_dataframe.py b/modin/experimental/core/execution/native/implementations/hdk_on_native/test/test_dataframe.py
--- a/modin/experimental/core/execution/native/implementations/hdk_on_native/test/test_dataframe.py
+++ b/modin/experimental/core/execution/native/implementations/hdk_on_native/test/test_dataframe.py
@@ -958,6 +958,12 @@ def dict_agg_all_cols(df, **kwargs):
 
         run_and_compare(dict_agg_all_cols, data=self.data)
 
+    def test_groupby_agg_list(self):
+        def agg(df, **kwargs):
+            return df.groupby("a")[["b", "c"]].agg(["sum", "size", "mean", "median"])
+
+        run_and_compare(agg, data=self.data)
+
     # modin-issue#3461
     def test_groupby_pure_by(self):
         data = [1, 1, 2, 2]