【问题标题】:Creating a dataframe from dictionary with arbitrary length values (using recycled keys as column value)从具有任意长度值的字典创建数据框(使用回收的键作为列值)
【发布时间】:2019-10-17 18:04:17
【问题描述】:

我正在努力将字典转换为数据框。

已经有很多答案展示了如何以“宽格式”(如https://stackoverflow.com/a/52819186/6912069)进行操作,但我想做一些不同的事情,最好不要使用循环。

考虑以下示例:

我有一本像这样的字典

d_test = {'A': [1, 2], 'B': [3]}

我想得到一个类似的数据框

index id    values
0     A     1
1     A     2
2     B     3

索引可以是一个正常的连续整数列。通过回收,我的意思是将'A'=[1, 2] 变成两行,在id 列中具有A,在值列中具有值。这样我就有了字典项的“长格式”数据框。

这似乎是一件非常基本的事情,但我想知道是否有一种优雅的pythonic方式来实现这一点。非常感谢您的帮助。

【问题讨论】:

    标签: python dataframe dictionary


    【解决方案1】:

    我会创建 2 个列表。一个来自键,另一个来自字典的值。当您定义列表时,您可以将列表传递到 DataFrame。

    import pandas as pd
    dic = {'A': [1, 2], 'B': [3], 'D': [4, 5, 6]}
    
    keys = []
    values = []
    
    for key, value in dic.items():
        for v in value:
            keys.append(key)
            values.append(v)
    
    df = pd.DataFrame(
        {'id': keys,
         'values': values,
        })
    print(df)
    

    【讨论】:

      猜你喜欢
      • 2019-03-20
      • 1970-01-01
      • 2022-06-22
      • 2014-12-25
      • 2013-11-13
      • 2021-08-24
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      相关资源
      最近更新 更多