【问题标题】:How to convert the dictionary to dataframe in this format?如何以这种格式将字典转换为数据框?
【发布时间】:2021-06-16 08:58:03
【问题描述】:

我有一本字典

dic = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']}

那我想转换df的形式

这种转换会重复多次。您能否详细说明一种有效的方法?

【问题讨论】:

  • 那么当您尝试编写代码来解决问题时发生了什么?

标签: python python-3.x pandas dictionary


【解决方案1】:

你可以melt它:

dic = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']}
df = pd.DataFrame(dic)
df.melt(value_name='node', var_name='root')
    root node
0   a    b
1   a    c
2   a    d
3   x    y
4   x    z
5   x    w

编辑:要处理不均匀的节点长度,请显式创建具有索引方向的原始df from_dict,这会将不均匀的节点填充为None。最后是dropna

dic = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w', 't']}
df = pd.DataFrame.from_dict(dic, orient='index').T
df.melt(value_name='node', var_name='root').dropna()
    root node
0   a    b
1   a    c
2   a    d
4   x    y
5   x    z
6   x    w
7   x    t

【讨论】:

    【解决方案2】:

    使用melt

    d = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']}
    df = pd.DataFrame(d).melt(var_name='root',value_name='node')
    
    print(df)
    
      root node
    0    a    b
    1    a    c
    2    a    d
    3    x    y
    4    x    z
    5    x    w
    

    【讨论】:

      【解决方案3】:

      您应该遍历您的 dict 并创建您想要的数据。

      import pandas as pd
      
      
      dic = {'a': ['b', 'c', 'd'], 'x': ['y', 'z', 'w']}
      
      column = ('node', 'root')
      data = [(node, root) for root, nodes in dic.items() for node in nodes]
      
      d = pd.DataFrame(columns=column, data=data)
      
      print(d)
      

      输出:

        node root
      0    b    a
      1    c    a
      2    d    a
      3    y    x
      4    z    x
      5    w    x
      
      

      【讨论】:

        【解决方案4】:
        df = pd.DataFrame.from_dict(dic)
        df.to_csv('test.csv', index=False) 
        

        您为数据框提供了 .csv 扩展名,并将其命名为 test.csv

        【讨论】:

          猜你喜欢
          • 2021-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-11
          • 2019-05-26
          • 2020-07-06
          • 1970-01-01
          相关资源
          最近更新 更多