【问题标题】:Sort data frame based on the value of a column and the length of a list in another column [duplicate]根据列的值和另一列中列表的长度对数据框进行排序[重复]
【发布时间】:2019-11-28 13:24:00
【问题描述】:

在数据框中,例如:

Employee      list_of_children              child

Jonathen      ['John', 'Bob','Jennifer']    John

Jonathen      ['John', 'Bob','Jennifer']    Bob

Jonathen      ['John', 'Bob','Jennifer']    Jennifer

Emily         ['Clark']                     Clark

Hans          ['Watson', 'Hans Jr']         Watson

Hans          ['Watson', 'Hans Jr']         Watson

如何对上述数据框进行排序,让孩子最少的员工排在第一位?

Employee      list_of_children              child

Emily         ['Clark']                     Clark

Hans          ['Watson', 'Monica']         Watson

Hans          ['Watson', 'Monica']         Monica

Jonathen      ['John', 'Bob','Jennifer']    John

Jonathen      ['John', 'Bob','Jennifer']    Bob

Jonathen      ['John', 'Bob','Jennifer']    Jennifer

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    得到len后我们可以使用argsort

    df = df.iloc[df['list_of_children'].str.len().argsort()]
    

    【讨论】:

    • 你为什么要把列表转成字符串? ["hello", "world"]["HELLLLLLLOOOOOOOOOOOO"]
    • @MohamadMoustafa 这不是将 list 转为 str ,这是计算 list 的长度,["hello", "world"] 返回 2 ["HELLLLLLLOOOOOOOOOOOO"] 返回 1
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2015-08-01
    • 2013-09-17
    • 2020-07-21
    • 2018-01-03
    • 2013-09-12
    • 2019-03-07
    • 2011-09-30
    相关资源
    最近更新 更多