Skip to main content
 首页 » 编程设计

python之Pandas 到多个字典对象

2025年05月04日48langtianya

我在表/数据框中有一个评分量表。我想读取读取框架并将其转换为多个 dict 对象。 我有 table :

col_ref col_cutoff col_value 
C1      10          100 
C1      20          200 
C1      Miss        500 
C1      Null        100 
C2      A           250 
C2      B           200 
C2      Null        0 
C2      Miss        100 

我想将其转换为 2 个字典对象:

C1_Dict = { 
    'Miss' : 500, 
    'Null'    :100, 
    'VALS'    : [ 
        (10, 100), 
        (20, 2000) 
    ] 
} 
 
C2_Dict = { 
    'Miss' : 100, 
    'Null'    :0, 
    'VALS'    : [ 
        (A, 250), 
        (B, 200) 
    ] 
} 

这是我开始的..但我想不通了

import pandas as pd 
 
def panda_2_dict(pd): 
    pdf_ref = pd.read_csv() 
    col_refs = pd.pdf_ref.[Col_ref.distinct] 
    For each i in col_refs 
             col_ref_i = {col_cutoff:col_val} 
    return col_ref_i 

我期待一个 dict 对象列表(这里是 2)。

请您参考如下方法:

你可以试试:

  col_ref col_cutoff  col_value 
0      C1         10        100 
1      C1         20        200 
2      C1       Miss        500 
3      C1       Null        100 
4      C2          A        250 
5      C2          B        200 
6      C2       Null          0 
7      C2       Miss        100 
 
gb = df.groupby('col_ref') 
 
for k, v in gb: 
    print k 
    a = (v[:2].set_index('col_cutoff')['col_value'].to_dict()).items() 
    b = v[2:].set_index('col_cutoff')['col_value'].to_dict() 
    b['VALS'] = a 
    print b 
 
    C1 
    {'VALS': [('10', 100), ('20', 200)], 'Null': 100, 'Miss': 500} 
    C2 
    {'VALS': [('A', 250), ('B', 200)], 'Null': 0, 'Miss': 100}