2017-02-26 197 views
6

我试图将只有1条记录的字典转换为熊猫数据框。我用从其他解决方案下面的代码:我如何将字典转换为熊猫数据框

d = {'id': 'CS2_056', 'cost': 2, 'name': 'Tap'} 

pd.DataFrame(d.items(), columns=['id', 'cost','name']) 

,但我得到了以下错误:

PandasError: DataFrame constructor not properly called! 
+2

[Python字典,以大熊猫数据框(http://stackoverflow.com/questions/34589332/python-dictionary-to-pandas-dataframe) – McGrady

回答

0

虽然这个问题确实有重复(Python Dictionary to Pandas Dataframe),我相信有simplier答案比那里提供的那些。

值转换为列表:

d = {'id': ['CS2_056'], 'cost': [2], 'name': ['Tap']}

后来干脆:

df = pd.DataFrame(d) 
print(df) 
#  cost  id name 
# 0  2 CS2_056 Tap 


请记住,如果列的次序关系你仍然需要明确地提供columnsDataFrame

df = pd.DataFrame(d, columns=['id', 'cost', 'name']) 
print(df) 
#   id cost name 
# 0 CS2_056  2 Tap 
16

您dict有纪录只有一个使用中的列表:

import pandas as pd 
d = {'id': 'CS2_056', 'cost': 2, 'name': 'Tap'} 
df = pd.DataFrame([d], columns=d.keys()) 
print df 

输出:

id cost name 
0 CS2_056  2 Tap 
+0

这工作的可能的复制。我从另一个问题中拿出了我原来的解决方案,但也许它不起作用的原因是因为它只有1条记录? – user3302483

0

可能是你使用python3。 在python3我们有名单有

pd.DataFrame(list(d.items()), columns=['id', 'cost','name']) 
相关问题