根据 Pandas 中的列表对多列进行排序

巴兰东吉夫

感谢有关如何根据熊猫中的倍数列表对给定的多列进行排序的任何提示,如下所示

import pandas as pd
sort_a=['a','d','e']
sort_b=['s1','s3','s6']
sort_c=['t1','t2','t3']
df=pd.DataFrame(zip(['a', 'e', 'd','a','a','d','e'], ['s3', 's1', 's6','s6','s3','s3','s1'], ['t3', 't2', 't1','t2','t2','t3','t3']),columns=["a", "b", "c"])

与排序列,也就是说,acd

这个想法就像 sort

df.sort(['a', 'c', 'd'], ascending = [sort_a, sort_c, sort_b])

预期输出

a   b   c
a   s3  t2
a   s3  t3
a   s6  t2
d   s3  t3
d   s6  t1
e   s1  t2
e   s1  t3
sammywemmy

一种选择是为每一列创建类别并排序:

categories = {col : pd.CategoricalDtype(categories=cat, ordered=True) 
              for col, cat 
              in zip(df.columns, [sort_a, sort_b, sort_c])}

df.astype(categories).sort_values([*df.columns])

   a   b   c
0  a  s3  t3
2  d  s6  t1
1  e  s1  t2

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据 Pandas 中的列表对选定的多列进行排序

根据pandas数据框中的2列对多列进行排序

根据列值对 Pandas Dataframe 进行排序

Python pandas 根据它们的值和其他行对多列进行排序

Pandas:根据可能值的一些规则对多列进行排序

Pandas Python groupby 多列 - 根据具有特定值的第一列按列 2 中的值对行进行排序

Pandas df根据整数索引列表对行和列进行重新排序

pandas dataframe根据列总数对列进行排序

插入DataFrame列并根据PySpark或Pandas中的另一列进行排序

根据列对数据框中的日期进行排序,并使用Pandas保持其他列的值

根据列值对具有MultiIndex的pandas DataFrame进行排序

如何根据其他列中的值对 Pandas 中的值进行排序?

对Pandas Dataframe列中的列表进行排序

根据特定列对Python中的列表列表进行排序

Pandas 数据框 - 根据多列的值列表选择元素

如何根据日期对SQL Server中的多列进行排序

下划线后根据后缀中的数字对pandas列进行排序

Pandas 函数根据标签进行排序

根据Pandas中的前缀将多列融为对应的列

根据多列对结果行进行排序

根据列名称对pandas数据框中的列重新排序

Pandas - 根据列中的排序顺序拆分数据帧

在Python中根据列表和字典对多列进行编码

根据pandas中的多列值获取行索引

如何根据pandas中的某些条件创建多列?

根据Python Pandas中的其他列对列进行分组

根据列表对列进行排序,然后对数据框中的另一列进行排序

根据一列的排序对多个Pandas Dataframe列进行排序

如何根据列值对列表进行排序