Подсказки Pythonic типа с помощью pandas?
Возьмем простую функцию, которая берет str и возвращает dataframe:
import pandas as pd
def csv_to_df(path):
return pd.read_csv(path, skiprows=1, sep='\t', comment='#')
Каков рекомендуемый питонический способ добавления типов подсказок к этой функции?
Если я задаю python для типа DataFrame, он возвращает pandas.core.frame.DataFrame
.
Однако следующее не будет работать, так как это скажет мне, что pandas не определен.
def csv_to_df(path: str) -> pandas.core.frame.DataFrame:
return pd.read_csv(path, skiprows=1, sep='\t', comment='#')
Ответы
Ответ 1
Почему бы просто не использовать pd.DataFrame
?
import pandas as pd
def csv_to_df(path: str) -> pd.DataFrame:
return pd.read_csv(path, skiprows=1, sep='\t', comment='#')
Результат тот же:
> help(csv_to_df)
Help on function csv_to_df in module __main__:
csv_to_df(path:str) -> pandas.core.frame.DataFrame
Ответ 2
В настоящее время я делаю следующее:
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='#')
Что дает:
> help(csv_to_df)
Help on function csv_to_df in module __main__:
csv_to_df(path:str) -> ~pandas.core.frame.DataFrame
Не знаю, как это pythonic, но это понятно, как подсказка типа. Я нахожу.