pandas dataframe按照列名给列排序三种方法
作者:Good_Hope
下面介绍三种方法,给dataframe列排序:
1、使用sort_values()方法,并指定axis=1参数。
import pandas as pd # 创建一个示例DataFrame data = {'A': [3, 1, 4], 'C': [2, 6, 5], 'B': [9, 8, 7]} df = pd.DataFrame(data) # 按照列名给列排序 df = df.sort_values(by=df.columns, axis=1) print(df)
输出结果:
A B C
0 3 9 2
1 1 8 6
2 4 7 5
在上述代码中,我们首先创建了一个示例DataFrame。然后,我们使用sort_values()
方法对DataFrame的列进行排序。通过指定by=df.columns
,我们将按照列名的字母顺序对列进行排序。最后,通过设置axis=1
参数,我们指定按列进行排序。
执行上述代码后,DataFrame的列将按照列名的字母顺序进行排序。
请注意,sort_values()
方法会生成一个新的DataFrame,因此我们将排序后的结果重新赋值给df
,以便在打印时显示排序后的结果。如果你想在原始DataFrame上进行排序,可以使用inplace=True
参数。
2、使用reindex()方法,并传递一个包含所需顺序的列名列表。
import pandas as pd # 创建一个示例DataFrame data = {'A': [3, 1, 4], 'B': [2, 6, 5], 'C': [9, 8, 7]} df = pd.DataFrame(data) # 按照指定顺序给列排序 order = ['B', 'C', 'A'] df = df.reindex(columns=order) print(df)
输出结果:
B C A
0 2 9 3
1 6 8 1
2 5 7 4
在上述代码中,我们首先创建了一个示例DataFrame。然后,我们定义了一个列表order
,其中包含了按照指定顺序排列的列名。接下来,我们使用reindex()
方法,并传递columns=order
来重新索引DataFrame的列,以按照指定顺序进行排序。
3、如果想原地修改DataFrame的列顺序,可以使用df = df[order]的方式重新分配DataFrame给同名变量。
import pandas as pd # 创建一个示例的合并 DataFrame df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}) merged_df = pd.concat([df1, df2], axis=1) # 按照指定顺序给列排序 order = ['D', 'C', 'B', 'A'] merged_df = merged_df[order] print(merged_df)
输出结果:
D C B A
0 10 7 4 1
1 11 8 5 2
2 12 9 6 3
在上述代码中,我们使用df[order]
的方式重新分配DataFrame给同名变量merged_df
,以按照指定顺序对列进行排序。这种方式将返回重新排序后的DataFrame,并将其分配给同名变量,从而实现了在原地修改列顺序的效果。
对了,上面的代码改一改,也阔以“筛选”哦,只要在order列表里删除不要的列名就行。
df.sort_values(["column_name1", "column_name2"] , inplace=True, ascending=True)
总结
到此这篇关于pandas dataframe按照列名给列排序三种方法的文章就介绍到这了,更多相关pandas dataframe按列名排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!