从字典创建pandas数据框

时间:2014-09-27 12:00:46

标签: python python-2.7 pandas

我想从DataFrame创建一个dict,其中dict keys将成为列名称,dict {{1}将是行。我正在尝试使用values转换我的字典。这是我的代码:

pandas.DataFrame.from_dict()

我不理解错误,在the docs import pandas as pd import datetime current_time1 = datetime.datetime.now() record_1 = {'Date':current_time1, 'Player':'John','Difficulty':'hard', 'Score':0} df = pd.DataFrame.from_dict(record_1, orient='columns') display(df) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-4-597ef27e82c8> in <module>() 1 record_1 = {'Date':current_time1, 'Player':'John','Difficulty':'hard', 'Score':0} ----> 2 df = pd.DataFrame.from_dict(record_1, orient='columns') 3 display(df) C:\Users\Jason\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in from_dict(cls, data, orient, dtype) 635 raise ValueError('only recognize index or columns for orient') 636 --> 637 return cls(data, index=index, columns=columns, dtype=dtype) 638 639 def to_dict(self, outtype='dict'): C:\Users\Jason\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in __init__(self, data, index, columns, dtype, copy) 201 dtype=dtype, copy=copy) 202 elif isinstance(data, dict): --> 203 mgr = self._init_dict(data, index, columns, dtype=dtype) 204 elif isinstance(data, ma.MaskedArray): 205 import numpy.ma.mrecords as mrecords C:\Users\Jason\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in _init_dict(self, data, index, columns, dtype) 325 326 return _arrays_to_mgr(arrays, data_names, index, columns, --> 327 dtype=dtype) 328 329 def _init_ndarray(self, values, index, columns, dtype=None, C:\Users\Jason\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in _arrays_to_mgr(arrays, arr_names, index, columns, dtype) 4618 # figure out the index, if necessary 4619 if index is None: -> 4620 index = extract_index(arrays) 4621 else: 4622 index = _ensure_index(index) C:\Users\Jason\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\core\frame.pyc in extract_index(data) 4657 4658 if not indexes and not raw_lengths: -> 4659 raise ValueError('If using all scalar values, you must must pass' 4660 ' an index') 4661 ValueError: If using all scalar values, you must must pass an index 中没有索引参数。另外,我认为如果没有提供索引pandas.DataFrame.from_dict会使用1..x?我怎样才能传递索引?

附加信息:我想最后使用日期列作为索引。

1 个答案:

答案 0 :(得分:20)

如果每个dict代表一行,您可以将 dicts 列表传递给pd.DataFrame

In [37]: pd.DataFrame([record_1])
Out[37]: 
                        Date Difficulty Player  Score
0 2014-09-27 08:26:16.950192       hard   John      0