BUG: Fix error for `boxplot` when using a pre-grouped `DataFrame` with more than one grouping
- [x] closes #14701 
- [x] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/v3.0.0.rst` file if fixing a bug or adding a new feature.

The original bug shows an indexing error when using `boxplot` on a pre-grouped `DataFrame`. For example:

`df.groupby(['X', 'Y']).boxplot()`

This error occurs as multiple groupings are passed as a tuple into the index of a `Series`, which is not allowed. The fix converts the `tuple` to a `string`, which is acceptable as an index to a `Series`.

There are other comments on the bug thread that state "Groupby boxplot is not working even when a single 'by' is used", which is not the case.

I have included in the tests both a single `by` and multiple `by` covering three different methods of plotting a `boxplot` from a `DataFrame`:

1) `df.boxplot(by='X')`
2) `df.boxplot(by=['X','Y'])`
3) `df.plot.box(by='X')`
4) `df.plot.box(by=['X','Y'])`
5) `df.groupby('X').boxplot()`
6) **`df.groupby(['X','Y']).boxplot()`**

Of all of the above, only example 6 required the fix.
> Thanks for the PR! Looking good.

Thanks for the feedback.

I will make the necessary adjustments and update the PR accordingly. Thanks @thetestspecimen - very nice! > Thanks @thetestspecimen - very nice!

No Problem @rhshadrach. Thanks for the detailed input and guidance.