pandas.DataFrame.from_dict#

classmethod DataFrame.from_dict(data, orient='columns', dtype=None, columns=None)[源代码][源代码]#

从数组类或字典的字典构造 DataFrame。

通过列或索引从字典创建 DataFrame 对象,允许指定 dtype。

参数:
数据dict

形式为 {field : 类数组} 或 {field : 字典}。

orient{‘columns’, ‘index’, ‘tight’}, 默认 ‘columns’

数据的“方向”。如果传递的字典的键应该是生成的 DataFrame 的列,则传递 ‘columns’(默认)。否则,如果键应该是行,则传递 ‘index’。如果传递 ‘tight’,则假定一个键为 [‘index’, ‘columns’, ‘data’, ‘index_names’, ‘column_names’] 的字典。

Added in version 1.4.0: ‘tight’ 作为 orient 参数的允许值

dtypedtype,默认 None

在 DataFrame 构造后强制使用的数据类型,否则推断。

列表,默认无

orient='index' 时使用的列标签。如果与 orient='columns'orient='tight' 一起使用,则会引发 ValueError。

返回:
DataFrame

参见

DataFrame.from_records

来自结构化 ndarray、元组序列或字典的 DataFrame,或 DataFrame。

DataFrame

使用构造函数创建 DataFrame 对象。

DataFrame.to_dict

将 DataFrame 转换为字典。

例子

默认情况下,字典的键成为 DataFrame 的列:

>>> 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

指定 orient='index' 以使用字典键作为行来创建 DataFrame:

>>> 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

当使用 ‘index’ 方向时,可以手动指定列名:

>>> 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

指定 orient='tight' 以使用 ‘tight’ 格式创建 DataFrame:

>>> data = {
...     "index": [("a", "b"), ("a", "c")],
...     "columns": [("x", 1), ("y", 2)],
...     "data": [[1, 3], [2, 4]],
...     "index_names": ["n1", "n2"],
...     "column_names": ["z1", "z2"],
... }
>>> pd.DataFrame.from_dict(data, orient="tight")
z1     x  y
z2     1  2
n1 n2
a  b   1  3
   c   2  4