【问题标题】:Sorting the lists in dataframe column对数据框列中的列表进行排序
【发布时间】:2018-07-13 03:57:25
【问题描述】:

我想知道对数据框列(熊猫)的每个列表进行排序。例如:

id       values
------------------------
 1      ['cdf','abc','efg']
 2      ['xyz' ,'rsy','abc']

预期:

 id       values
------------------------
 1      ['abc','cdf','efg']
 2      ['abc' ,'rsy','xyz']

谢谢: 我也想知道是否存在逗号分隔的字符串而不是列表。

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    只需使用 applysorted

    df['values'].apply(sorted)
    
    0    [abc, cdf, efg]
    1    [abc, rsy, xyz]
    Name: values, dtype: object
    

    对于逗号分隔值,感谢@AChampion:

    df = pd.DataFrame({'id': [1,2], 'values': ['cdf, abc, efg', 'xyz, rsy, abc']})
    df['values'].apply(lambda x: ','.join(sorted(x.split(','))))
    
    0     abc, efg,cdf
    1     abc, rsy,xyz
    Name: values, dtype: object
    

    您还可以使用列表推导来提高性能:

    df['values'] = [','.join(sorted(i.split(','))) for i in df['values']]
    

    【讨论】:

    • df['values'].apply(lambda x: ','.join(sorted(x.split(',')))) 用于逗号分隔的字符串。
    猜你喜欢
    • 2014-02-18
    • 2017-09-08
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2021-09-19
    • 2011-11-12
    相关资源
    最近更新 更多