ENH: functions filter_columns and filter_rows created
- [ ] closes #55289
- [ ] [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
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [x] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

Basically those 2 functions do the same as filter() in pandas/core/generic.py, but separated to deal with either columns or rows. Also hopefully it's easier without the need to specify the 'axis' and with the 'items' variable being replaced by 'colnames' and 'rownames'.

Is this close to what you expected @speed650? Your idea to have a list of boolean expressions (Filter_Rows( [ ('name'==bob), ( 'age' > 20) ])) be accepted by the functions sounded great, but I couldn't figure out how to do it without making them hard to use, defeating the purpose I suppose.

Thanks for the PR but as mentioned consensus is needed in the issue before proceeding with a PR so closing for now but happy to reopen if there's agreement to move forward here Ok, I'll be checking from time to time to see if a consensus has been reached, thank you.