Skip to main content
 首页 » 编程设计

python 字典到具有多列的 pandas 数据框

2025年05月04日13haluo1

我有以下 python 字典:

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

我想将其保存为以下格式的 pandas 数据框:

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) 

请您参考如下方法:

您可以使用 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