如何将 Pandas DataFrame 转换为只有值而没有列的 Python 字典?

Dev*_*shi 2 python dictionary dataframe pandas

我想将下面的 DataFrame 转换为 Python 字典。

输入:

pandas.DataFrame({"Customer":["C1","C1","C2","C2], "Material":["M1","M2","M3","M3"], "Supplier":["S1","S2","S3","S4"]})
Run Code Online (Sandbox Code Playgroud)

DataFrame 将如下所示:

  Customer  Material  Supplier
0   C1         M1       S1
1   C1         M2       S2
2   C2         M3       S3
3   C2         M3       S4
Run Code Online (Sandbox Code Playgroud)

? 输出字典应如下所示:

{"C1": {"M1":["S1"], "M2":["S2"]}, "C2":{"M3":["S3","S4"]}}
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助..!

jez*_*ael 5

转换DataFrameMultiIndex Series然后使用字典理解:

s = df.groupby(['Customer','Material'])['Supplier'].apply(list)

d = {l: s.xs(l).to_dict() for l in s.index.levels[0]}
print (d)
{'C1': {'M1': ['S1'], 'M2': ['S2']}, 'C2': {'M3': ['S3', 'S4']}}
Run Code Online (Sandbox Code Playgroud)