iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >【python】【pandas】dataframe按照列名给列排序
  • 742
分享到

【python】【pandas】dataframe按照列名给列排序

pythonpandas开发语言数据分析 2023-09-03 18:09:23 742人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

下面介绍三种方法,给dataframe列排序: 1、使用sort_values()方法,并指定axis=1参数。 import pandas as pd# 创建一个示例DataFramedata = {'A': [3, 1, 4],

下面介绍三种方法,给dataframe列排序

1、使用sort_values()方法,并指定axis=1参数。

import pandas as pd# 创建一个示例DataFramedata = {'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  C0  3  9  21  1  8  62  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# 创建一个示例DataFramedata = {'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  A0  2  9  31  6  8  12  5  7  4

在上述代码中,我们首先创建了一个示例DataFrame。然后,我们定义了一个列表order,其中包含了按照指定顺序排列的列名。接下来,我们使用reindex()方法,并传递columns=order来重新索引DataFrame的列,以按照指定顺序进行排序。

3、如果想原地修改DataFrame的列顺序,可以使用df = df[order]的方式重新分配DataFrame给同名变量。

import pandas as pd# 创建一个示例的合并 DataFramedf1 = 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  A0  10  7  4  11  11  8  5  22  12  9  6  3

在上述代码中,我们使用df[order]的方式重新分配DataFrame给同名变量merged_df,以按照指定顺序对列进行排序。这种方式将返回重新排序后的DataFrame,并将其分配给同名变量,从而实现了在原地修改列顺序的效果。

对了,上面的代码改一改,也阔以“筛选”哦,只要在order列表里删除不要的列名就行。

来源地址:https://blog.csdn.net/Good_Hope/article/details/131015730

--结束END--

本文标题: 【python】【pandas】dataframe按照列名给列排序

本文链接: https://www.lsjlt.com/news/392643.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作