【问题标题】:Sort pandas dataframe by column specifying custom order按指定自定义顺序的列对熊猫数据框进行排序
【发布时间】:2021-09-17 00:00:03
【问题描述】:

我得到了一个看起来像这样的 csv:

col1, col2, col3, col4
txt,txt,error,txt
txt,txt,new,txt
txt,txt,new,txt
txt,txt,error,txt
txt,txt,new,txt
txt,txt,fix,txt

我想把行的顺序改成这样

col1, col2, col3, col4
txt,txt,new,txt
txt,txt,new,txt
txt,txt,new,txt
txt,txt,fix,txt
txt,txt,error,txt
txt,txt,error,txt

所以行跟随新闻 -> 变化 -> col3 中的错误

到目前为止,尝试了不同的方法:

import pandas as pd
csv_dataframe = pd.read_csv(user_submitted_csv_file)
csv_dataframe = csv_dataframe.sort_values(by=['col3'])

但这还不够,因为它既不是字母也不是升序/降序。 还尝试了诸如提取行->删除所有行->以正确的顺序添加回来之类的方法,但是也遇到了问题...

【问题讨论】:

    标签: python pandas dataframe sorting


    【解决方案1】:

    pandas>=1.1.0,您可以使用.sort_values 方法的key 参数来编写定义您喜欢的自定义顺序的lambda 函数。

    要做到这一点,您只需要按照您想要的顺序定义一个自定义字典

    custom_dict = {'new': 0, 'fix': 1, 'error': 2}
    df.sort_values(by=['col3'], key=lambda x: x.map(custom_dict))
    

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 2023-01-10
      • 2013-10-12
      • 2021-10-14
      • 1970-01-01
      • 2019-04-12
      • 2021-12-01
      • 1970-01-01
      • 2012-11-30
      相关资源
      最近更新 更多