@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