docstr: _summary_
  
  Args:
      json_data (Dict): data
      index (Collection, optional): desired index. Defaults to None.
      limit (int, optional): limit the output coming from dataframe. Defaults to 20.
  
  Returns:
      pd.DataFrame: _description_
docstr_tok: ["_summary_","Args",":","json_data","(","Dict",")",":","data","index","(","Collection",",","optional",")",":","desired","index",".","Defaults","to","None",".","limit","(","int",",","optional",")",":","limit","the","output","coming","from","dataframe",".","Defaults","to","20",".","Returns",":","pd.DataFrame",":","_description_"]
code: def __to_dataframe(
      json_data: Dict,
      index: Collection = None,
      limit: int = 20,
  ) -> pd.DataFrame:
      """_summary_
  
      Args:
          json_data (Dict): data
          index (Collection, optional): desired index. Defaults to None.
          limit (int, optional): limit the output coming from dataframe. Defaults to 20.
  
      Returns:
          pd.DataFrame: _description_
      """
      df = pd.DataFrame(json_data, index=index)
      df.replace("null", np.nan, inplace=True)
      df = df.dropna()
  
      return df.tail(limit)
  
file_path: mindsdb/mindsdb/integrations/handlers/pypi_handler/api.py
imports: from os import path
  from typing import Collection, Dict
  import numpy
  import pandas
  import requests
label_desc: Use image node_id 7 for calling the PyPI obj's underlying member method code with example usage: obj.__to_dataframe(json_data, index, limit) and returns: df