将pandas中的值分组到索引

时间:2015-08-05 09:19:26

标签: python pandas

我有一个pandas数据框,索引为“已分配”,值为“ticket_number”:

                    ticket_number
assigned                         
person1                    1
person1                    2
person2                    3

我正在尝试按照公共索引对票号进行分组,以便我可以拥有唯一的索引。我的目标是让它变成一个像下面那样代表一对多关系的格式:

                    ticket_number
assigned                         
person1                    1
                           2
person2                    3

最终目标是通过to_json()运行它以获得以下输出:

{
    "ticket_number": {
        "person1": { "1","2" },
        "person2": "3",
    }
}

似乎to_json()中的一个东方参数可以适应这种情况,但没有一个产生我正在寻找的结果。

如何对公共索引中的值进行分组,以便只出现一次索引,并且每个索引条目都包含一组关联的值?

1 个答案:

答案 0 :(得分:0)

听起来您想使用DataFrame.groupby方法。

df.groupby(df.index).agg(lambda x: list(x))     

         ticket_number
assigned              
person1         [1, 2]
person2            [3]

然后在整个结果数据框中,Dataframe.to_json()

df.groupby(df.index).agg(lambda x: list(x)).to_json()
'{"ticket_number":{"person1":[1, 2],"person2":[3]}}'

LINTED:

{
    "ticket_number": {
        "person1": [1, 2],
        "person2": [3]
    }
}