@classmethod<EOL><INDENT>def from_dict(cls, data, orient='<STR_LIT>', dtype=None, columns=None):<DEDENT>
index = None<EOL>orient = orient.lower()<EOL>if orient == '<STR_LIT:index>':<EOL><INDENT>if len(data) > <NUM_LIT:0>:<EOL><INDENT>if isinstance(list(data.values())[<NUM_LIT:0>], (Series, dict)):<EOL><INDENT>data = _from_nested_dict(data)<EOL><DEDENT>else:<EOL><INDENT>data, index = list(data.values()), list(data.keys())<EOL><DEDENT><DEDENT><DEDENT>elif orient == '<STR_LIT>':<EOL><INDENT>if columns is not None:<EOL><INDENT>raise ValueError("<STR_LIT>"<EOL>"<STR_LIT>")<EOL><DEDENT><DEDENT>else:  <EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>return cls(data, index=index, columns=columns, dtype=dtype)<EOL>
Construct DataFrame from dict of array-like or dicts.

Creates DataFrame object from dictionary by columns or by index
allowing dtype specification.

Parameters
----------
data : dict
    Of the form {field : array-like} or {field : dict}.
orient : {'columns', 'index'}, default 'columns'
    The "orientation" of the data. If the keys of the passed dict
    should be the columns of the resulting DataFrame, pass 'columns'
    (default). Otherwise if the keys should be rows, pass 'index'.
dtype : dtype, default None
    Data type to force, otherwise infer.
columns : list, default None
    Column labels to use when ``orient='index'``. Raises a ValueError
    if used with ``orient='columns'``.

    .. versionadded:: 0.23.0

Returns
-------
DataFrame

See Also
--------
DataFrame.from_records : DataFrame from ndarray (structured
    dtype), list of tuples, dict, or DataFrame.
DataFrame : DataFrame object creation using constructor.

Examples
--------
By default the keys of the dict become the DataFrame columns:

>>> data = {'col_1': [3, 2, 1, 0], 'col_2': ['a', 'b', 'c', 'd']}
>>> pd.DataFrame.from_dict(data)
   col_1 col_2
0      3     a
1      2     b
2      1     c
3      0     d

Specify ``orient='index'`` to create the DataFrame using dictionary
keys as rows:

>>> data = {'row_1': [3, 2, 1, 0], 'row_2': ['a', 'b', 'c', 'd']}
>>> pd.DataFrame.from_dict(data, orient='index')
       0  1  2  3
row_1  3  2  1  0
row_2  a  b  c  d

When using the 'index' orientation, the column names can be
specified manually:

>>> pd.DataFrame.from_dict(data, orient='index',
...                        columns=['A', 'B', 'C', 'D'])
       A  B  C  D
row_1  3  2  1  0
row_2  a  b  c  d