python - 按指定自定义顺序的列对熊猫数据框进行排序
问题描述
我有一个看起来像这样的 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'])
但这还不够,因为它不是按字母顺序排列的,也不是升序/降序的。还尝试了诸如提取行->删除所有行->以正确顺序重新添加之类的方法,但是也遇到了问题...
解决方案
pandas>=1.1.0
您可以使用该方法的key
参数编写一个 lambda 函数,该函数定义您喜欢的自.sort_values
定义顺序。
为此,您只需要使用您想要的顺序定义一个自定义字典
custom_dict = {'new': 0, 'fix': 1, 'error': 2}
df.sort_values(by=['col3'], key=lambda x: x.map(custom_dict))
推荐阅读
- sql - 试图让跑步总数发挥作用
- java - 带有 java.lang.NullPointerException 消息的 Eclipse java 氧气错误
- r - R 新手,并收到此错误消息,如何在我的群组中省略 NA 来分析我的数据?
- eclipse - 添加然后使用 rcptt 从该文件中读取信息
- python - 无法让 json 定时事件正常工作
- visual-studio - VS Code“无法解析工作区文件夹”
- php - PHP - 在上传之前重命名文件
- visual-studio - How to design this type of shape using XAML and Visual Basic?
- jenkins - 您可以通过 SMS 消息触发 Jenkins 作业吗?
- python - 如何转换数据框,使列值是行值