【问题标题】:Grouping values in pandas into on index将 pandas 中的值分组到索引中
【发布时间】:2015-08-05 09:19:25
【问题描述】:

我有一个带有“已分配”索引和“票号”值的熊猫数据框:

                    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() 中的 orient 参数之一似乎可以适应这种情况,但没有产生我正在寻找的结果。

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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    听起来你想使用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]}}'
    

    棉绒:

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

    【讨论】:

    • 太棒了,成功了。我之前确实戳过 groupby 函数,但错过了它的 agg(...) 部分。谢谢!
    猜你喜欢
    • 2022-01-10
    • 2018-01-14
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 2022-06-11
    • 2015-10-26
    相关资源
    最近更新 更多