libb.downcast
- downcast(df, rtol=1e-05, atol=1e-08, numpy_dtypes_only=False)[source]
Downcast DataFrame to minimum viable type for each column.
Ensures resulting values are within tolerance of original values.
- Parameters:
- Returns:
Downcasted DataFrame.
- Return type:
DataFrame
Note
See numpy.allclose for tolerance parameters.
Example:
>>> from numpy import linspace, random >>> from pandas import DataFrame >>> data = { ... "integers": linspace(1, 100, 100), ... "floats": linspace(1, 1000, 100).round(2), ... "booleans": random.choice([1, 0], 100), ... "categories": random.choice(["foo", "bar", "baz"], 100)} >>> df = DataFrame(data) >>> downcast(df, rtol=1e-10, atol=1e-10).info() <class 'pandas.core.frame.DataFrame'> ... dtypes: bool(1), category(1), float64(1), uint8(1) memory usage: 1.3 KB >>> downcast(df, rtol=1e-05, atol=1e-08).info() <class 'pandas.core.frame.DataFrame'> ... dtypes: bool(1), category(1), float32(1), uint8(1) memory usage: 964.0 bytes