def METHOD_NAME(data):
  """Extract data from pandas.DataFrame for predictors.
  Given a DataFrame, will extract the values and cast them to float. The
  DataFrame is expected to contain values of type int, float or bool.
  Args:
    data: `pandas.DataFrame` containing the data to be extracted.
  Returns:
    A numpy `ndarray` of the DataFrame's values as floats.
  Raises:
    ValueError: if data contains types other than int, float or bool.
  """
  if not isinstance(data, pd.DataFrame):
    return data
  bad_data = [column for column in data
              if data[column].dtype.name not in PANDAS_DTYPES]
  if not bad_data:
    return data.values.astype('float')
  else:
    error_report = [("'" + str(column) + "' type='" +
                     data[column].dtype.name + "'") for column in bad_data]
    raise ValueError('Data types for extracting pandas data must be int, '
                     'float, or bool. Found: ' + ', '.join(error_report))