将 pandas 数据框转换为字典的字典

Ujj*_*Roy 2 python dataframe pandas

我有一个数据框,其中有两种产品的属性和值。

PRODUCT ATTRIBUTE   VALUES
prod1   Attr1         A
prod1   Attr2         B
prod1   Attr3         C
prod1   Attr4         D
prod2   Attr1         E
prod2   Attr2         F
prod2   Attr3         G
prod2   Attr4         H
Run Code Online (Sandbox Code Playgroud)

如何将其转换为如下所示的字典列表的字典?

{'prod1':[{'Attr1':A, 'Attr2':B, 'Attr3':C, 'Attr4':D}], 'prod2':[{'Attr1':E, 'Attr2':F, 'Attr3':G, 'Attr4':H}]}
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

您可以groupby使用apply

d = df.groupby('PRODUCT').apply(lambda x: [dict(zip(x.ATTRIBUTE, x.VALUES))]).to_dict()
print (d)
{'prod1': [{'Attr1': 'A', 'Attr2': 'B', 'Attr3': 'C', 'Attr4': 'D'}],
'prod2': [{'Attr1': 'E', 'Attr2': 'F', 'Attr3': 'G', 'Attr4': 'H'}]}
Run Code Online (Sandbox Code Playgroud)