pythonpandastype-hinting

Pythonic type hints with pandas?


Let's take a simple function that takes a str and returns a dataframe:

import pandas as pd
def csv_to_df(path):
    return pd.read_csv(path, skiprows=1, sep='\t', comment='#')

What is the recommended pythonic way of adding type hints to this function?

If I ask python for the type of a DataFrame it returns pandas.core.frame.DataFrame. The following won't work though, as it'll tell me that pandas is not defined.

 def csv_to_df(path: str) -> pandas.core.frame.DataFrame:
     return pd.read_csv(path, skiprows=1, sep='\t', comment='#')

Solution

  • Why not just use pd.DataFrame?

    import pandas as pd
    def csv_to_df(path: str) -> pd.DataFrame:
        return pd.read_csv(path, skiprows=1, sep='\t', comment='#')
    

    Result is the same:

    > help(csv_to_df)
    Help on function csv_to_df in module __main__:
    csv_to_df(path:str) -> pandas.core.frame.DataFrame