Fel*_* D. 1 python sorting dataframe pandas
如何根据多列对 Pandas DataFrame 进行排序,其中一些列按升序排序,而其他列按降序排序?
此外,假设将用于排序的列有太多唯一值,无法为排序键或函数一一列出pd.Categorical
(如本线程中建议的)。
这是一个可重现的小示例:
import pandas as pd
my_df = pd.DataFrame({'col1':['a','a','a','a','b','b','b','b','c','c','c','c'],
'col2':[1,1,2,2,1,1,2,2,1,1,2,2],
'col3':[1,2,1,2,1,2,1,2,1,2,1,2]})
Run Code Online (Sandbox Code Playgroud)
假设在上面的示例中,我想my_df
按如下方式排序:
col1
按降序排列col2
按降序排列col3
按升序排列Fel*_* D. 11
该DataFrame.sort_values
方法可以很容易地处理这个问题。只需使用ascending
参数并提供布尔值列表。
import pandas as pd
my_df = pd.DataFrame({'col1':['a','a','a','a','b','b','b','b','c','c','c','c'],
'col2':[1,1,2,2,1,1,2,2,1,1,2,2],
'col3':[1,2,1,2,1,2,1,2,1,2,1,2]})
my_df = my_df.sort_values(by=['col1','col2','col3'],
ascending=[False, False, True])
Run Code Online (Sandbox Code Playgroud)
请注意,参数中提供的列表ascending
必须与参数中提供的列表具有相同的长度by
。
归档时间: |
|
查看次数: |
9313 次 |
最近记录: |