pandas.DataFrame.from_dict#

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

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

按列或按索引从字典创建DataFrame对象,允许指定数据类型。

参数
dataDICT

格式为{field:arraylike}或{field:dict}。

orient{‘列’,‘索引’,‘紧凑’},默认‘列’

数据的“定向”。如果传递的dict的键应该是结果DataFrame的列,则传递‘Columns’(默认)。否则,如果键应该是行,则传递‘index’。如果“收紧”,则假定为带有键的DICT ['index', 'columns', 'data', 'index_names', 'column_names'] 。

1.4.0 新版功能: 属性的允许值为“Tack” orient 论据

dtype数据类型,默认为无

要强制的数据类型,否则进行推断。

columns列表,默认为无

在下列情况下使用的列标签 orient='index' 。与一起使用时引发ValueError orient='columns'orient='tight'

退货
DataFrame

参见

DataFrame.from_records

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

DataFrame

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

DataFrame.to_dict

将DataFrame转换为词典。

示例

默认情况下,DICT的键成为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' 要使用“紧密”格式创建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