代码之家  ›  专栏  ›  技术社区  ›  Symphony

如何在没有索引的情况下将数据帧转换为字典[closed]

  •  2
  • Symphony  · 技术社区  · 6 年前

    我有一个数据帧 df 具体如下:

    | name  | coverage |
    |-------|----------|
    | Jason | 25.1     |
    

    我想把它改成字典。 pandas :

    dict=df.to_dict()
    

    dict 给了我以下信息:

    {'coverage': {0: 25.1}, 'name': {0: 'Jason'}} 
    

    0 在我的输出中。我相信这是因为我的数据帧中有列索引 测向 我能做些什么来消除 0 在我的输出中 (我不希望捕获索引。)预期输出:

    {'coverage': 25.1, 'name': 'Jason'} 
    
    2 回复  |  直到 6 年前
        1
  •  52
  •   Anton vBR    6 年前

    当我看到有两列的数据集时,我看到的是一个系列,而不是一个数据帧。

    d = df.set_index('name')['coverage'].to_dict() 它将把你的数据帧转换成一个系列并输出。

    d = df.to_dict('r') . `

    可运行代码:

    import pandas as pd
    
    df = pd.DataFrame({
        'name': ['Jason'],
        'coverage': [25.1]
    })
    
    print(df.to_dict())
    print(df.set_index('name')['coverage'].to_dict())
    print(df.to_dict('r'))
    

    退货:

    {'name': {0: 'Jason'}, 'coverage': {0: 25.1}}
    {'Jason': 25.1}
    [{'name': 'Jason', 'coverage': 25.1}]
    

        2
  •  45
  •   banan3'14    6 年前
    dict1 = df.to_dict('records')
    

    dict2 = df.to_dict('list')
    

    list

    records :每行成为一个字典,其中key是列名,value是单元格中的数据

    推荐文章