def batchDF(symbols, fields=None, range_='<STR_LIT>', last=<NUM_LIT:10>, token='<STR_LIT>', version='<STR_LIT>'):
x = batch(symbols, fields, range_, last, token, version)<EOL>ret = {}<EOL>if isinstance(symbols, str):<EOL><INDENT>for field in x.keys():<EOL><INDENT>ret[field] = _MAPPING[field](x[field])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>for symbol in x.keys():<EOL><INDENT>for field in x[symbol].keys():<EOL><INDENT>if field not in ret:<EOL><INDENT>ret[field] = pd.DataFrame()<EOL><DEDENT>dat = x[symbol][field]<EOL>dat = _MAPPING[field](dat)<EOL>dat['<STR_LIT>'] = symbol<EOL>ret[field] = pd.concat([ret[field], dat], sort=True)<EOL><DEDENT><DEDENT><DEDENT>return ret<EOL>
Batch several data requests into one invocation

    https://iexcloud.io/docs/api/#batch-requests


    Args:
        symbols (list); List of tickers to request
        fields (list); List of fields to request
        range_ (string); Date range for chart
        last (int);
        token (string); Access token
        version (string); API version

    Returns:
        DataFrame: results in json