无涯教程可以通过以下几种有效地在DataFrame中执行排序:
在解释这两种排序之前,首先必须将数据集用于演示:
import pandas as pd import numpy as np info=pd.DataFrame(np.random.randn(10,2),index=[1,3,7,2,4,5,9,8,0,6],columns=['col2','col1']) print(info)
输出
col2 col1 1 -0.456763 -0.931156 3 0.242766 -0.793590 7 1.133803 0.454363 2 -0.843520 -0.938268 4 -0.018571 -0.315972 5 -1.951544 -1.300100 9 -0.711499 0.031491 8 1.648080 0.695637 0 2.576250 -0.625171 6 -0.301717 0.879970
在上面的DataFrame中,标签和值未排序。因此,看看如何对其进行排序:
可以使用 sort_index()方法对DataFrame进行排序。可以通过传递轴参数和排序顺序来完成。默认情况下,按升序对行标签进行排序。
import pandas as pd import numpy as np info=pd.DataFrame(np.random.randn(10,2),index=[1,2,5,4,8,7,9,3,0,6],columns = ['col4','col3']) info2=info.sort_index() print(info2)
输出
col4 col3 0 0.698346 1.897573 1 1.247655 -1.208908 2 -0.469820 -0.546918 3 -0.793445 0.362020 4 -1.184855 -1.596489 5 1.500156 -0.397635 6 -1.239635 -0.255545 7 1.110986 -0.681728 8 -1.797474 0.108840 9 0.063048 1.512421
可以通过将布尔值传递给升序参数来控制排序的顺序。
import pandas as pd import numpy as np info= pd.DataFrame(np.random.randn(10,2),index=[1,4,7,2,5,3,0,8,9,6],columns = ['col4','col5']) info_2 = info.sort_index(ascending=False) print(info)
输出
col4 col5 1 0.664336 -1.846533 4 -0.456203 -1.255311 7 0.537063 -0.774384 2 -1.937455 0.257315 5 0.331764 -0.741020 3 -0.082334 0.304390 0 -0.983810 -0.711582 8 0.208479 -1.234640 9 0.656063 0.122720 6 0.347990 -0.410401
可以通过将axis参数传递给其值0或1来对列标签进行排序。默认情况下, axis = 0 ,它按行排序。
import pandas as pd import numpy as np info = pd.DataFrame(np.random.randn(10,2),index=[1,4,8,2,0,6,7,5,3,9],columns = ['col4','col7']) info_2=info.sort_index(axis=1) print(info_2)
输出
col4 col7 1 -0.509367 -1.609514 4 -0.516731 0.397375 8 -0.201157 -0.009864 2 1.440567 1.058436 0 0.955486 -0.009777 6 -1.211133 0.415147 7 0.095644 0.531727 5 -0.881241 -0.871342 3 0.206327 -1.154724 9 1.418127 0.146788
这是另一种可以在DataFrame中执行排序的方法。与索引排序类似, sort_values()是一种按值排序的方法。
它还提供了一项函数,无涯教程可以在其中指定要对值进行排序的DataFrame的列名。通过传递' by '参数来完成。
import pandas as pd import numpy as np info = pd.DataFrame({'col1':[7,1,8,3],'col2':[8,12,4,9]}) info_2 = info.sort_values(by='col2') print(info_2)
输出
col1 col2 2 8 4 0 7 8 3 3 9 1 1 12
在上面的输出中,观察到这些值仅在 col2 中排序,并且相应的 col1 值和行索引将与 col2 一起更改。因此,它们看起来没有分类。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)