web-dev-qa-db-ja.com

パンダとPythonのタイプのヒント?

Strを取り、データフレームを返す簡単な関数を見てみましょう。

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

この関数に型ヒントを追加するための推奨されるPythonの方法は何ですか?

DataFrameのタイプについてpythonを要求すると、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='#')
20
dangom

なぜpd.DataFrameを使用しないのですか?

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
34
Georgy

現在、次のことを行っています。

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がどれほど優れているかはわかりませんが、型のヒントとしては十分理解できると思います。

11
dangom