Pandas:按值列表对列进行排序,类似于 SELECT * FROM df WHERE ORDER BY FIELD(id,...)

利鲁特

SELECT * FROM df WHERE id in (3,1,2) ORDER BY FIELD(id,3,1,2)Pandas 中的类似查询是什么


list_ids = [3, 1, 2]
df[df.id.isin(list_ids)]#.sort_by_field('id', list_ids)

afaik.sort_values()只能按数据框中已有的列排序。

注意:我不想按列的多个/列表进行排序。我想按特定的值列表对一列进行排序

安赫尔·伊瓜拉达

您可以指定要在内部排序的列列表 sort_values()

df[df.id.isin(list_ids)].sort_values(["col1","col3","col2"], ascending=True)

如果您想按某种特定顺序订购,您可以创建一个附加列来执行此操作。

order_list = [3,1,2]
order_dict = dict(zip(order_list , range(len(order_list ))))
df["sort_col"] = df["id"].map(order_dict)
df[df.id.isin(list_ids)].sort_values(["sort_col"], ascending=False)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SELECT FROM table,ORDER BY IF(...)

SELECT ... WHERE值类似'%...%'

多级“where”子句(类似于order by)

MySQL View Order By在Select * FROM view WHERE中不起作用

Postgres SELECT id LAG(id) OVER (ORDER BY id) FROM invoice WHERE id = 2

根据条件用np.select和np.where替换df中的值

按自定义值列表对pandas df列进行排序

MySQL的:ORDER BY列DESC LIMIT(SELECT COUNT(*)FROM表);

SELECT * FROM表where CURDATE()

MySQL错误502:“ SELECT * FROM table WHERE uid = 1 ORDER BY ID DESC LIMIT 0,100”;分页不起作用

SQL Select From Where 不同的列必须相等

Tsql使用WHERE对ORDER BY进行排序

SQL Select Distinct Top5 with Order By 和 Where

通过 labelid 查找 fieldId

SELECT * FROM table WHERE列= ??? 在PHP中具有未知数量的值?

SELECT FROM WHERE X NOT IN Y的意外结果

SELECT、FROM、INNER JOIN、WHERE 函数

SELECT * FROM表名WHERE 1

SQL Select / From / Where运行速度

MySQL SELECT FROM 3 Table with where

SQL语法中的错误,MySQL服务器版本要求在'CompletedNo SELECT(OrderNo。)FROM`order` WHERE`OrderNo.`附近使用正确的语法

select * from apply_jobs where appid like '%RAD-0001%' and job_id IN ('41,48,49') order by id asc

Python MySQL SELECT WHERE 与列表

按月按日期列对 df 进行排序

select * from table where id = select max id in codeigniter

“ SELECT * FROM view_table WHERE原因” =>但结果总是重新排序

SELECT * FROM Employees WHERE NULL是NULL; SELECT * FROM Employees WHERE NULL = NULL;

Pandas - 在屏蔽和 df.where 後應用乘法

MariaDB简单的SELECT ORDER不排序