2016-12-16 84 views
1

我有以下Python字典:蟒蛇字典大熊猫数据框与多列

d= {'data'  : Counter({ 'important' : 2, 
         'very'  : 3}), 
    'analytics' : Counter({ 'boring' : 5, 
         'sleep'  : 3}) 
    } 

我想将它保存为以下格式的熊猫数据帧:

category | word  | count 
    data | important | 2 
    data | very  | 3 
analytics | boring | 5 
analytics | sleep  | 3 

我尝试以下,但没有它的工作

df = pd.DataFrame(d.items()) 

df = pd.DataFrame.from_dict(d, orient='index').reset_index() 

df = pd.DataFrame(data) 

回答

4

您可以使用stack

df = pd.DataFrame(d).stack().reset_index() 
df.columns = ['word','category','count'] 
print(df) 
     word category count 
0  boring analytics 5.0 
1 important  data 2.0 
2  sleep analytics 3.0 
3  very  data 3.0 

df = pd.DataFrame.from_dict(d, orient='index').stack().reset_index() 
df.columns = ['category','word','count'] 
print(df) 

    category  word count 
0 analytics  boring 5.0 
1 analytics  sleep 3.0 
2  data important 2.0 
3  data  very 3.0 

与嵌套列表理解另一种解决方案:

df = pd.DataFrame([(key,key1,val1) for key,val in d.items() for key1,val1 in val.items()]) 
df.columns = ['category','word','count'] 
print(df) 
    category  word count 
0 analytics  boring  5 
1 analytics  sleep  3 
2  data important  2 
3  data  very  3 
+0

PERFECT !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!谢谢 – jeangelj