Pythonic type tips with pandas?

Take a simple function that takes 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 tooltip types to this function?

If I set python for the DataFrame type, it returns pandas.core.frame.DataFrame . However, the following will not work, as this will 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='#') 
+22
source share
2 answers

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='#') 

The 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 
+37
source

I am currently doing the following:

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

What gives:

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

I don’t know how pythonic is, but it’s understandable as a type hint. I find.

+12
source

All Articles