Skip to main content
 首页 » 编程设计

来自包含字典的字典的 Python Pandas 数据框

2025年05月04日12soundcode

我有以下问题: 我正在用 pandas 数据帧分析实验数据,因为数据本身有点复杂,结果我得到了这样的结果,它是一个包含字典的字典:

    data = {aa: {1: 4, 2: 19, 3: 70, 4: 20}, bb: {1: 9, 2: 3, 3: 65, 4: 20}} 

当尝试像这样从中获取 pandas 数据框时:

    df = pd.DataFrame(list(data.items()), columns=['code', 'week1_2']) 

我得到的结果是这样的:

    0   ah03Di  {'1': 11, '2': 11, '3': 12, '4': 14} 
    1   an02Ka     {'1': 6, '2': 11, '3': 7, '4': 9} 

但我更想要(或需要)的是这样的东西

    0   ah03Di  11  
    1   ah303Di 11 
    2   ah03Di  12 
    3   ah03Di  14 
    4   an02ka  6 
    5   an02Ka  11 
    6   an02ka  7 
    7   an02ka  9    

有没有简单的方法可以做到这一点?

请您参考如下方法:

import pandas as pd   
pd.DataFrame(data).stack().reset_index() 
 
   level_0 level_1   0 
0        1      aa   4 
1        1      bb   9 
2        2      aa  19 
3        2      bb   3 
4        3      aa  70 
5        3      bb  65 
6        4      aa  20 
7        4      bb  20 

对于您的名字和这两列:

(pd.DataFrame(data).stack().reset_index().drop(columns='level_0') 
  .rename(columns={'level_1': 'code', 0: 'week1_2'})) 
#  code  week1_2 
#0   aa        4 
#1   bb        9 
#2   aa       19 
#3   bb        3 
#4   aa       70 
#5   bb       65 
#6   aa       20 
#7   bb       20