从不同长度的元组列表的字典中创建 Pandas DataFrame
Posted
技术标签:
【中文标题】从不同长度的元组列表的字典中创建 Pandas DataFrame【英文标题】:Creating a Pandas DataFrame from a Dictionary of different-length list of Tuples 【发布时间】: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()]))
但它会导致:
【问题讨论】:
【参考方案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
【讨论】:
像魅力一样工作。谢谢以上是关于从不同长度的元组列表的字典中创建 Pandas DataFrame的主要内容,如果未能解决你的问题,请参考以下文章