## pandas_utils.clean_names()


Clean DataFrame column names by normalizing whitespace and adjusting case.


Usage

``` python
pandas_utils.clean_names(df: gpd.GeoDataFrame, case_type: str = ...) -> gpd.GeoDataFrame
 
pandas_utils.clean_names(df: pd.DataFrame, case_type: str = ...) -> pd.DataFrame
```


## Parameters


`df: pd.DataFrame | gpd.GeoDataFrame`  
The DataFrame whose column names to clean.

`case_type: str = ``"lower"`  
How to transform the case of column names. One of:

- `"lower"` : all characters lowercase (default)
- `"upper"` : all characters uppercase
- `"snake"` : CamelCase/camelCase to snake_case
- `"preserve"` : no case change, only spaces replaced


## Returns


`df: pd.DataFrame | gpd.GeoDataFrame`  
A new DataFrame with cleaned column names. The original is not mutated.


## Raises


`ValueError`  
If `case_type` is not one of the accepted values, or if two source columns normalize to the same name (which would silently drop a column).


## Examples

``` python
>>> import pandas as pd
>>> df = pd.DataFrame({"Aloha": [1], "Bell Chart": [2], "CamelCase": [3]})
>>> clean_names(df)
```

aloha bell_chart camelcase 0 1 2 3

``` python
>>> clean_names(df, case_type="snake")
```

aloha bell_chart camel_case 0 1 2 3
