EHN: Function to optimise dataframe (efficient datatypes)
**Problem**

It is well-documented that the default data frame is not the most size efficient. To do that we have to manually convert each column to their respectively smallest datatype possible.

This will involve the conversion of categorical and downsizing of integers & floats as stated in pandas [documentation](https://pandas.pydata.org/pandas-docs/stable/user_guide/scale.html#use-efficient-datatypes).

**Solution**

I am wondering if it makes sense to create a new function to automatically convert/scale down all the columns in a dataframe to its most efficient. Something as simple as below.

```python
import pandas as pd

df_optimzied = pd.optimize(df)
```

I will be willing to implement this feature as a pull request if it is something the maintainers value. At least, I feel it is something our team will use frequently.