code: def get_movielens_metadata(
      df_item: pd.DataFrame = None,
  ) -> pd.DataFrame:
      """
      Return MovieLens 100K metadata as a DataFrame.
  
      DataFrame returned has the following column order:
  
      .. code-block:: python
  
          [
              'genre_action', 'genre_adventure', 'genre_animation', 'genre_children', 'genre_comedy',
              'genre_crime', 'genre_documentary', 'genre_drama', 'genre_fantasy', 'genre_film_noir',
              'genre_horror', 'genre_musical', 'genre_mystery', 'genre_romance', 'genre_sci_fi',
              'genre_thriller', 'genre_war', 'genre_western', 'genre_unknown', 'decade_unknown',
              'decade_20', 'decade_30', 'decade_40', 'decade_50', 'decade_60',
              'decade_70', 'decade_80', 'decade_90',
          ]
  
      See the MovieLens 100K README for additional information on the dataset:
      https://files.grouplens.org/datasets/movielens/ml-100k-README.txt
  
      Parameters
      ----------
      df_item: pd.DataFrame
          DataFrame of MovieLens 100K ``u.item`` containing binary columns of movie names and
          metadata. If ``None``, will automatically read the output of ``read_movielens_df_item()``
  
      Returns
      -------
      metadata_df: pd.DataFrame
  
      """
      if df_item is None:
          df_item = read_movielens_df_item()
  
      # format movies decade
      df_item_date = df_item.iloc[:, [2]].copy()
      df_item_date.loc[:, "year"] = df_item_date[
          "release_date"
      ].dt.year.fillna(1900)
      df_item_date.loc[:, "decade"] = (
          (df_item_date["year"] - 1900) / 10
      ).astype("int64") * 10
      df_decades = pd.get_dummies(df_item_date.decade, prefix="decade")
      df_decades.columns = ["decade_unknown"] + df_decades.columns[
          1:
      ].tolist()
  
      # format movie genre
      df_item_genre = df_item.iloc[:, list(range(4, 23))].copy()
      df_item_genre.columns = (
          "genre_" + df_item_genre.columns.str.lower()
      )
  
      # format final metadata structure
      metadata_df = pd.merge(
          df_item_genre, df_decades, left_index=True, right_index=True
      )
  
      # find and swap genre_unknown to end of genre list
      cols = metadata_df.columns.values.tolist()
      last_genre_element = list(
          filter(re.compile("genre*").match, cols)
      )[-1]
      last_genre_index = cols.index(last_genre_element)
      cols.insert(last_genre_index + 1, "genre_unknown")
      cols.remove("genre_unknown")
      metadata_df = metadata_df[cols]
  
      return metadata_df
  
file_path: collie/collie/movielens/get_data.py
imports: import os
  from pathlib import Path
  import re
  import zipfile
  import pandas
  import requests
  from collie.config import DATA_PATH
label_desc: Use image node_id 7 for calling a global function with example usage: get_movielens_metadata(df_item) and returns: metadata_df