我有一个表格的字典对象:
my_dict = {id1: val1, id2: val2, id3: val3, ...}
我想将其创建为一个DataFrame,我想在其中列出2列'business_id'和'business_code'。
我试过了:
business_df = DataFrame.from_dict(my_dict,orient='index',columns=['business_id','business_code'])
但它说from_dict
不接受列参数。
TypeError:from_dict()得到了一个意外的关键字参数'columns'
答案 0 :(得分:27)
您可以遍历这些项目:
In [11]: pd.DataFrame(list(my_dict.iteritems()),
columns=['business_id','business_code'])
Out[11]:
business_id business_code
0 id2 val2
1 id3 val3
2 id1 val1
答案 1 :(得分:9)
要获得与文档相同的功能并避免使用代码解决方法,请确保您使用的是最新版本的Pandas。我最近在从Pandas教程中运行一行代码时遇到了同样的错误:
let input = parseInt(e.target.value, 10)
我检查了Pandas的版本,发现当版本23可用时我运行的是22版。
pd.DataFrame.from_dict(dict([('A', [1, 2, 3]), ('B', [4, 5, 6])]),orient='index', columns=['one', 'two', 'three'])
我使用pip进行了升级:
import pandas as pd
pd.__version__
Out[600]: '0.22.0'
我确认我的版本更新为23,并且相同的from_dict()代码正常工作。无需修改代码。
答案 2 :(得分:3)
From version 0.23.0,您可以在columns
中指定一个from_dict
参数:
my_dict = {id1: val1, id2: val2, id3: val3, ...}
prepared_dict = {i: x for i, x in enumerate(my_dict.items())}
df = pd.DataFrame.from_dict(prepared_dict, orient='index', columns=['business_id', 'business_code'])
注意:我也对this similar question作了实地回答。
答案 3 :(得分:0)
这样做:
创建数据框
df = pd.DataFrame(data_as_2d_ndarray)
从字典中创建列名称的排序列表 - 根据需要调整键值karg从dict中获取排序值,显示数据必须具有一致形状的字典
col_names = sorted(list(col_dict.iteritems()),key=lambda x:x[0])
重塑并设置列名称
df.columns = zip(*col_names)[1]
答案 4 :(得分:0)
这与你遇到的TypeError有关。根据Pandas文档,只有当orient ='index'时,from_dict才会使用关键字'columns'。