def calculate_float_histogram(data, num_bins=10):
    """
    Calculates a histogram for continuous `data`.

    Parameters
    ----------
    data : pandas.Series of float
        Continuous data to be binned.
    num_bins : int, default 10
        Number of bins to use.

    Returns
    -------
    histogram : dict

    """
    values = data.values.tolist()

    # reject non-numbers
    try:
        values = list(map(float, values))
    except ValueError:
        raise TypeError(
            "unable to generate histogram from non-numeric column {}".format(data.name)
        )

    # calculate bin boundaries
    start, stop = min(values), max(values)
    space = (stop - start)/num_bins
    bin_boundaries = [start + space*i for i in range(num_bins)]
    # ensure last bin covers max value
    bin_boundaries.append(stop)

    # fit `data` into bins
    reference_counts = []
    bin_windows = list(zip(bin_boundaries[:-1], bin_boundaries[1:]))
    for l, r in bin_windows[:-1]:  # handle last bin shortly
        count = len([value for value in values if l <= value < r])
        reference_counts.append(count)
    # ensure last bin includes max value
    count = len([value for value in values if bin_boundaries[-2] <= value])
    reference_counts.append(count)

    return {
        'histogram': {
            'float': {
                'bucket_limits': bin_boundaries,
                'count': reference_counts,
            },
        },
        'type': "float",
    }