diff --git a/pandas/core/frame.py b/pandas/core/frame.py index a66d00fff9714..d3a170a6260a3 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -883,27 +883,66 @@ def dot(self, other): @classmethod def from_dict(cls, data, orient='columns', dtype=None, columns=None): """ - Construct DataFrame from dict of array-like or dicts + 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 - {field : array-like} or {field : 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' + 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 + pandas.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 """ index = None orient = orient.lower()