Pandas DataFrame是Python中数据分析的重要工具,它的排序操作也是非常重要的。排序操作可以按照指定的列或行来排序,并可以指定排序的方向,排序的结果可以是原DataFrame的拷贝,也可以是对原DataFrame的修改。
1. 按列排序
我们来看如何按照列来排序DataFrame。默认情况下,DataFrame的排序是按照升序排列,如果要按照降序排列,可以使用参数ascending=False。
import pandas as pd df = pd.DataFrame({'name': ['Jack', 'Tom', 'Alice', 'Bob'], 'age': [18, 20, 19, 17]}) # 按照name列升序排列 df.sort_values(by='name') # 按照age列降序排列 df.sort_values(by='age', ascending=False)
2. 按行排序
如果要按照行来排序DataFrame,可以使用参数axis=1,默认情况下,排序是按照升序排列,如果要按照降序排列,可以使用参数ascending=False。
import pandas as pd df = pd.DataFrame({'name': ['Jack', 'Tom', 'Alice', 'Bob'], 'age': [18, 20, 19, 17]}) # 按照行升序排列 df.sort_values(axis=1) # 按照行降序排列 df.sort_values(axis=1, ascending=False)
3. 对拷贝排序
如果不想对原DataFrame进行排序,可以使用参数inplace=False,这样可以对拷贝进行排序,而不影响原DataFrame。
import pandas as pd df = pd.DataFrame({'name': ['Jack', 'Tom', 'Alice', 'Bob'], 'age': [18, 20, 19, 17]}) # 按照name列升序排列,但不影响原DataFrame sorted_df = df.sort_values(by='name', inplace=False)
4. 排序结果
我们来看一下排序之后的结果。如果使用参数inplace=True,可以直接对原DataFrame进行排序,排序之后的结果就是原DataFrame;如果使用参数inplace=False,就会返回一个拷贝,排序之后的结果就是拷贝。
- inplace=True时,排序之后的结果是原DataFrame;
- inplace=False时,排序之后的结果是拷贝。