【问题标题】:Creating a Pandas DataFrame from a Dictionary of different-length list of Tuples从不同长度的元组列表的字典中创建 Pandas DataFrame
【发布时间】:2021-03-01 03:57:39
【问题描述】:

我有一个格式字典: 键 = 人名 Items = list(Tuple(GUID, INT(value)), ...)

{'Person A':[('abc123',1),('bcc222',2),('igh643',1)],'Person B': [('abc123',4)],'Person C': [('abc123',2),('icy558',7)]}

我想将其转换为索引格式的熊猫数据框:GUID,列:人名,值:INT(值)。这应该类似于:

我试过了:

pd.DataFrame(dict([(k,pd.Series(v)) for k,v in d.items()]))

但它会导致:

【问题讨论】:

    标签: python pandas dataframe dictionary tuples


    【解决方案1】:

    你在正确的轨道上。只需进一步展平元组值,以便可以轻松地旋转结果表。

    代码

    dic 是给定的字典数据。

    df = pd.DataFrame(
        [[k, v[0], v[1]] for k, ls_v in dic.items() for v in ls_v],
        columns=["Person", "GUID", "value"]
    ).pivot(index="GUID", columns="Person")
    
    # drop hierarchical level of "value"
    df.columns = df.columns.droplevel(0)
    

    结果

    print(df)
    
    Person Person A Person B Person C
    GUID                             
    abc123      1.0      4.0      2.0
    bcc222      2.0      NaN      NaN
    icy558      NaN      NaN      7.0
    igh643      1.0      NaN      NaN
    

    【讨论】:

    • 像魅力一样工作。谢谢
    猜你喜欢
    • 2020-05-04
    • 2017-10-03
    • 2018-07-25
    • 2020-01-11
    • 2021-06-20
    • 2019-06-13
    • 2019-02-10
    • 2020-01-22
    • 1970-01-01
    相关资源
    最近更新 更多