def nd_load_and_stats(filenames, base_path=BASEPATH):
    """
    Load multiple files from disk and generate stats

    Passes the list of files assuming the ding0 data structure as default in
    :code:`~/.ding0`.
    Data will be concatenated and key indicators for each grid district are
    returned in table and graphic format.

    Parameters
    ----------
    filenames : list of str
        Provide list of files you want to analyze
    base_path : str
        Root directory of Ding0 data structure, i.e. '~/.ding0' (which is
        default).

    Returns
    -------
    stats : pandas.DataFrame
        Statistics of each MV grid districts

    """

    # load Ding0 data
    nds = []
    for filename in filenames:
        try:
            nd_load = results.load_nd_from_pickle(filename=
                                                  os.path.join(base_path,
                                                               'grids',
                                                               filename))

            nds.append(nd_load)
        except:
            print("File {mvgd} not found. It was maybe excluded by Ding0 or "
                  "just forgotten to generate by you...".format(mvgd=filename))

    nd = nds[0]

    for n in nds[1:]:
        nd.add_mv_grid_district(n._mv_grid_districts[0])

    # get statistical numbers about grid
    stats = results.calculate_mvgd_stats(nd)

    return stats
Load multiple files from disk and generate stats

    Passes the list of files assuming the ding0 data structure as default in
    :code:`~/.ding0`.
    Data will be concatenated and key indicators for each grid district are
    returned in table and graphic format.

    Parameters
    ----------
    filenames : list of str
        Provide list of files you want to analyze
    base_path : str
        Root directory of Ding0 data structure, i.e. '~/.ding0' (which is
        default).

    Returns
    -------
    stats : pandas.DataFrame
        Statistics of each MV grid districts