When doing data cleansing, we'll often introduce filters of various degrees of complexity to exclude invalid values. We may also include a mapping to sanitize values in the cases where a valid but improperly formatted value can be replaced with a valid but proper value.
We might produce the following output:
def comma_fix(data: str) -> float: try: return float(data) except ValueError: return float(data.replace(",", ""))def clean_sum( cleaner: Callable[[str], float], data: Iterable[str] ) -> float: return reduce(operator.add, map(cleaner, data))
We've defined a simple mapping, the comma_fix() class, that will convert data from a nearly correct string format into a usable floating-point ...