アノテーション
@transform

@transform

transform デコレータ


概要:

transform デコレータは、MorphのPythonセル内で表形式のデータ変換を行う主要な関数に適用されます。このデコレータは、関数が pandas.DataFrame オブジェクトを返すことを担保するために利用します。

パラメータ:

  • なし

戻り値:

  • デコレータは、入力された関数をラップし、その実行結果が pandas.DataFrame インスタンスであることを確認した上で、そのインスタンスを返します。

使用例:

from morphdb_utils.annotations import transform
 
@transform
def main(data: Dict[str, pd.DataFrame]):
    df = data["sheet_cell"]
 
    # Extract only data that contains 'Annual Average'
    df = df[df['Name'] == "Nitrogen dioxide (NO2)"]
    df = df[df['Time Period'].str.contains("Annual Average")]
 
    # Select necessary columns and rename them
    df = df[['Time Period', 'Data Value', 'Geo Place Name']]
    df.columns = ['Year', 'NO2_Concentration', 'Location']
 
    # Extract year from 'Year' column which contains 'Annual Average YYYY'
    df['Year'] = df['Year'].str.extract(r'(\d{4})').astype(int)
 
    # Filter data to include only 'Manhattan'
    df = df[df['Location'] == "Manhattan"]
 
    # Sort the data by year in ascending order
    df = df.sort_values(by='Year', ascending=True)
 
    return df

Transform