按指定自定义顺序的列对熊猫数据框进行排序

时间:2021-07-06 10:44:24

标签: python pandas dataframe sorting

我得到了一个看起来像这样的 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'])

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

1 个答案:

答案 0 :(得分:3)

select date, number, sum(number) over (order by date rows between unbounded preceding and current row) from t; 开始,您可以使用 .sort_values 方法的 pandas>=1.1.0 参数编写一个 lambda 函数来定义您喜欢的自定义顺序。

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

key