与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] 删除。
我来说两句