ENH: Adds round_decimals=None to Series.value_counts() to use with normalize=True
State: closed

- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

When using `value_counts` with `normalize=True` with a **Series,** the result contains the relative frequencies of the unique values and therefore sums up to 1.0. If then you need to round these frequencies to some decimals, it is not a so trivial task [[1]](https://stackoverflow.com/questions/13483430/how-to-make-rounded-percentages-add-up-to-100)[[2]](https://stackoverflow.com/questions/5227215/how-to-deal-with-the-sum-of-rounded-percentage-not-being-100)[[3]](https://revs.runtime-revolution.com/getting-100-with-rounded-percentages-273ffa70252b). So when this new **int** `round_decimals` argument is **not None**, the method applies the [Largest_remainder_method](https://en.wikipedia.org/wiki/Largest_remainder_method) to round the values to the number of decimals selected, but also to sum up to 1.0 in total.

Labels:

Comments:
why do you think this belongs pandas? this seems easy to apply as a follow operation in any event
> why do you think this belongs pandas? this seems easy to apply as a follow operation in any event

Well, that would also apply to the other arguments then, wouldn't it?
> > why do you think this belongs pandas? this seems easy to apply as a follow operation in any event
> 
> Well, that would also apply to the other arguments then, wouldn't it?

you didn't answer the question. what is the justification here? this is not very common. 
> > > why do you think this belongs pandas? this seems easy to apply as a follow operation in any event
> > 
> > 
> > Well, that would also apply to the other arguments then, wouldn't it?
> 
> you didn't answer the question. what is the justification here? this is not very common.

Answering the question, in my case I found this useful because there is `pandas.Series.value_counts(normalize=True)` and  `pandas.Series.round`, both of them returning **Series**, but applying them concatenated wouldn't be correct.
It is true that there is no open Issue regarding this, but as I found the 2 questions in StackOverflow with some upvotes, I just thought it could be useful. And as I had to implement it for myself, I just wanted to contribute with it. But of course, it is just open to review if it's valuable or not.
Thanks!
@maxi-marufo I am basicallyh -0 on this. 

@pandas-dev/pandas-core any interest here?
I think this is a pretty niche application so while the effort is much appreciated I would be -1 on adding as a keyword
Thanks @maxi-marufo. The pandas code base is already too complex, and it's difficult and very time consuming to maintain. Adding extra complexity makes things even worse. While the feature you're adding is reasonable, in a project like pandas I don't think it's worth the extra complexity.

Closing this. For future contributions, probably worth to open an issue to have some discussion, before working on the implementation. Feel free to also do it for this change, if you this we aren't understanding the impact of this new feature. Usage examples on how pandas is performing now, and how would perform with your proposed changes can help the discussion.

Thanks!