简体   繁体   English

如何将熊猫数据框转换为datadict

[英]How to convert pandas dataframe to datadict

I have the following pandas dataframe. 我有以下熊猫数据框。 I wish to convert to a default or datadict. 我希望转换为默认值或datadict。

Dataframe: 数据帧:

    Col A    Col B   Col C
 0   a1     k1       v1  
 1   a1     k2       v2  
 2   a1     k3       v3  
 3   a2     k4       v4  
 4   a3     k5       v5  
 5   a3     k6       v6  

Output expected: 预期输出:

# dict
{
    "a1" : {"k1": "v1", k2: "v2", "k3": "v3"},
    "a2" : {"k4": "v4"},
    "a3" : {"k5": "v5", "k6": "v6"}
}

I tried this with no luck. 我没有运气尝试过。

dict = df.set_index('Col A').groupby('Col B').apply( lambda x: x.ColC.to_dict()).to_dict()

Thanks for the help!! 谢谢您的帮助!!

Using groupby with to_dict to_dict使用groupby

{x : y.set_index('ColB')['ColC'].to_dict()for x, y in  df.groupby('ColA')}
Out[252]: 
{'a1': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'},
 'a2': {'k4': 'v4'},
 'a3': {'k5': 'v5', 'k6': 'v6'}}

Use groupby and iterate over your groups: 使用groupby并遍历您的组:

{k: dict(g[['Col B', 'Col C']].values) for k, g in df.groupby('Col A')}

{'a1': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'},
 'a2': {'k4': 'v4'},
 'a3': {'k5': 'v5', 'k6': 'v6'}}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM