docstr: get companies changes
  
  Returns
  -------
      pd.DataFrame:
          symbol      date        type
          SH600000  2019-11-11    add
          SH600000  2020-11-10    remove
      dtypes:
          symbol: str
          date: pd.Timestamp
          type: str, value from ["add", "remove"]
docstr_tok: ["get","companies","changes","Returns","--","--","--","-","pd.DataFrame",":","symbol","date","type","SH600000","2019-11-11","add","SH600000","2020-11-10","remove","dtypes",":","symbol",":","str","date",":","pd.Timestamp","type",":","str",",","value","from","[","``","add","''",",","``","remove","''","]"]
code: def get_changes(self) -> pd.DataFrame:
      """get companies changes
  
      Returns
      -------
          pd.DataFrame:
              symbol      date        type
              SH600000  2019-11-11    add
              SH600000  2020-11-10    remove
          dtypes:
              symbol: str
              date: pd.Timestamp
              type: str, value from ["add", "remove"]
      """
      raise NotImplementedError("rewrite get_changes")
  
file_path: qlib/scripts/data_collector/index.py
imports: import sys
  import abc
  from pathlib import Path
  from typing import List
  import pandas
  from tqdm import tqdm
  from loguru import logger
  from data_collector.utils import get_trading_date_by_shift
label_desc: Use image node_id 5 for calling the IndexBase obj's underlying member method code with example usage: obj.get_changes() without return types