我得到了一个看起来像这样的 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'])
但这还不够,因为它不是按字母顺序排列的,也不是升序/降序的。 还尝试了诸如提取行 -> 删除所有行 -> 按正确顺序添加回来之类的事情,但也遇到了问题......
答案 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