将数据框转换为列表和字典

我有以下数据框:

      Region   Name    Price
0     ny       A         53.00
1     ln       B         52.23
2     ln       B         51.20
3     tk       C         50.50

我想将数据转换为列表中的列表,并将名称和价格字段转换为字典。 名称字段是重复的,但是我想获得唯一的值。然后将价格分配给密钥。

Something like this: [Region,{Name:Price}]

例如:

[[ny, {"A": array([53.00])}],[ln, {"B": array([52.23 , 51.20])}],[tk, {"C": array([50.50]}]]

谁能建议我一种执行方法?

谢谢。

评论
  • 我喜欢他
    我喜欢他 回复

    您可以将Region,Name作为MultiIndex并输出to_dict,如下所示:

    df = pd.DataFrame({
        'Region': ['ny', 'ln', 'ln', 'tk'],
        'Name': ['A', 'B', 'B', 'C'],
        'Price': [53, 52, 51, 50]
    })
    
    df.set_index(['Region', 'Name']).groupby(level=0).apply(
        lambda df: df.xs(df.name).to_dict()
    ).to_dict()
    

    结果

    {
     'ln': {'Price': {'B': 51}},
     'ny': {'Price': {'A': 53}},
     'tk': {'Price': {'C': 50}}
    }