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)
提前感谢您的帮助..!
转换DataFrame
为MultiIndex 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)