我有一个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()
中的一个东方参数可以适应这种情况,但没有一个产生我正在寻找的结果。
如何对公共索引中的值进行分组,以便只出现一次索引,并且每个索引条目都包含一组关联的值?
答案 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]
}
}