pandas 颠倒列顺序的两种解决方案

在数据预处理过程中可能需要将列的顺序颠倒,有两种方法。

import numpy as np
import pandas as pd
df = pd.DataFrame(np.array(range(20)).reshape(4,5))
print(df)

原始dataframe如下:

  0  1  2  3  4
0  0  1  2  3  4
1  5  6  7  8  9
2 10 11 12 13 14
3 15 16 17 18 19

1. 方法一

手动设置列名列表,应用在dataframe中(适合列名比较少的情况)

我们可以手动来更换列的顺序

cols = [4,3,2,1,0]
df = df.ix[:,cols]
print(df)

输出如下:

  4  3  2  1  0
0  4  3  2  1  0
1  9  8  7  6  5
2 14 13 12 11 10
3 19 18 17 16 15

2. 方法二

pandas提供颠倒列顺序的方式

可以看出当数据的列较多时,方法一会非常繁琐,pandas提供一种非常简便的方式来进行列顺序的颠倒。

df = df.ix[:, ::-1]
print(df)

输出如下:

  4  3  2  1  0
0  4  3  2  1  0
1  9  8  7  6  5
2 14 13 12 11 10
3 19 18 17 16 15

补充:Python列表排序与倒序

python学习笔记

列表排序

1、sort()

2、sorted()

3、reverse()

sort()的使用

letters = ['d','a','e','c','b']
print letters
['d','a','e','c','b']
letters.sort()
print letters
['a','b','c','d','e']

sort()会自动按照字母顺序对字符串由小到大排序,如果数字就由小到大

注:sort()会修改原来的列表他是修改列表,而不是创建新的列表。

不应该

print letters.sort()

而应该

letters.sort()
print letters

还可以用.sorted()函数

# 得到一个有序的副本列表
#而不影响原来列表的顺序
old = ['d','a','e','c','b']
new = sorted(old)
print old
['d','a','e','c','b']
print new
['a','b','c','d','e']

reverse的使用

# 方法1 作为reverse()函数
letters = ['d','a','e','c','b']
letters.sort()
print letters
['a','b','c','d','e']
letters.reverse()
print letters
['e','d','c','b','a']
# 方法2 作为sort()函数参数
letters = ['d','a','e','c','b']
letter.sort(reverse = Ture)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • pandas调整列的顺序以及添加列的实现

    在对excel的操作中,调整列的顺序以及添加一些列也是经常用到的,下面我们用pandas实现这一功能. 1.调整列的顺序 >>> df = pd.read_excel(r'D:/myExcel/1.xlsx') >>> df A B C D 0 bob 12 78 87 1 millor 15 92 21 >>> df.columns Index(['A', 'B', 'C', 'D'], dtype='object') # 这是最简单常用的一种方法,

  • Python pandas.DataFrame调整列顺序及修改index名的方法

    1. 从字典创建DataFrame >>> import pandas >>> dict_a = {'user_id':['webbang','webbang','webbang'],'book_id':['3713327','4074636','26873486'],'rating':['4','4','4'],'mark_date':['2017-03-07','2017-03-07','2017-03-07']} >>> df = pandas.

  • pandas中的DataFrame按指定顺序输出所有列的方法

    问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99,75,80,42,80,72,68,36,78] df = pd.DataFrame( {'ID': ["x%d" % r for r in range(10)], 'Gender' : ['F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'M'],

  • Pandas中DataFrame交换列顺序的方法实现

    一.获取DataFrame列标签 import pandas as pd file_path = '/Users/Arithmetic/da-rnn-master/data/collectd67_power_after_test_smooth.csv' dataset = pd.read_csv(file_path) cols = list(dataset) ['ps_state-stopped', 'ps_state-running', 'ps_state-blocked', 'ps_stat

  • pandas 按照特定顺序输出的实现代码

    df.groupby() 之后按照特定顺序输出,方便后续作图,或者跟其他df对比作图. ## 构造 pd.DataFrame patient_id = ['71835318256532', '87791375711', '66979212649388', '46569922967175', '998612492555522', '982293214194', '89981833848', '17912315786975', '4683495482494', '1484143378533', '5

  • pandas 颠倒列顺序的两种解决方案

    在数据预处理过程中可能需要将列的顺序颠倒,有两种方法. import numpy as np import pandas as pd df = pd.DataFrame(np.array(range(20)).reshape(4,5)) print(df) 原始dataframe如下: 0 1 2 3 4 0 0 1 2 3 4 1 5 6 7 8 9 2 10 11 12 13 14 3 15 16 17 18 19 1. 方法一 手动设置列名列表,应用在dataframe中(适合列名比较少的

  • Pandas修改DataFrame列名的两种方法实例

    目录 解决方法1:通过DataFrame.columns类的自身属性修改 1.暴力修改 2.stirp方法 3.lambda表达式 解决方法2:通过DataFrame.rename()函数修改 1.暴力修改(可以只修改部分列名) 2.lambda表达式 pandas更改DataFrame的行名或列名实例 更改列名 更改行名 总结 输入: $a $b $c $d $e 0 1 2 3 4 5 期望的输出: a  b  c  d  e0  1  2  3  4  5 原数据DataFrame: im

  • 解决WebStorm 2022.3.x 无法识别 Element UI 2.15.11 新版本中的 el-xxx 标签问题(两种解决方案)

    目录 问题解读 解决(方案一) 解决(方案二) 问题解读 如题,其实2.15.11这个版本的Element UI新增了功能,改进WebStorm IDE和其他JetBrains IDE中的代码帮助.本义是想很好的支持IDE软件,代码提示更加方便,但作者发布时候少打包了一个文件,这就导致Webstorm不认识所有的el-xxx标签!!! 解决(方案一) 既然知道了这个版本有点小问题,那就简单粗暴,暂时降级到2.15.10版本,提示就有了.等过段时间官方修复了BUG,再改回最新版即可. 注意,由于我

  • Json返回时间的格式中出现乱码问题的两种解决方案

    前言:这段时间一直没有写博客,首先是我正在实现权限系列的绝色和操作的实现,因为这些东西在前面我们都已经说过了,所以我们就不重复的说这些了,那么我们知道,在我们使用Json返回数据的时候时间的格式一般都会变了,变成我们不认识的一些字符,那么当我们遇到这些问题的时候我们该怎么解决呢,今天我就来小说一下这个的解决方法. .发现问题 (1).正如我们在前言里面所说,我们在编写Json解析时间的时候会返回一些莫名其妙的东西,那么我们是如何解决这个问题的呢?我现在有两种方法可以解决这个问题,下面我们首先来说

  • IOS应用程序多语言本地化的两种解决方案

    最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法: 一.程序中提供给用户自己选择的机会: 二.根据当前用户当前移动设备的语言自动将我们的app切换对应语言. 第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点: 本地化应用程序名称 本地化字符串 本地化图片 本地化其他文件 1.本地化应用程序名称 (1)点击"new file"然后在弹出窗口左侧选择iOS的resource项,在

  • 将input file的选择的文件清空的两种解决方案

    上传文件时,选择了文件后想清空文件路径,搜索了一下,用两种方法解决 复制代码 代码如下: <input type="file" id="fileupload" name="file" /> 第一种: 复制代码 代码如下: var obj = document.getElementById('fileupload') ; obj.select(); document.selection.clear(); 第二种: 复制代码 代码如下:

  • window.onload绑定多个事件的两种解决方案

    前言 有些函数,必须在网页加载完毕后执行.比如:涉及DOM操作的. 网页加载完毕时会触发一个onload事件,将函数绑定到这个事件上即可. 复制代码 代码如下: window.onload = myFunction; 问题来了:如果需要同时绑定多个事件,该如何处理呢?有两种解决方法 方案一 创建一个匿名函数,来容纳需要绑定的多个事件,再讲这个匿名函数绑定到onload事件上 window.onload = function(){ firstFunction(); secondFunction()

  • sql server中批量插入与更新两种解决方案分享(asp.net)

    若只是需要大批量插入数据使用bcp是最好的,若同时需要插入.删除.更新建议使用SqlDataAdapter我测试过有很高的效率,一般情况下这两种就满足需求了 bcp方式 复制代码 代码如下: /// <summary> /// 大批量插入数据(2000每批次) /// 已采用整体事物控制 /// </summary> /// <param name="connString">数据库链接字符串</param> /// <param n

  • asp.net中url地址传送中文参数时的两种解决方案

    在Web.comfig中配置 是一样的: <globalization requestEncoding="gb2312" responseEncoding="gb2312"/> 页面Header部分也都有 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 真是奇怪, 只好用了笨办法: 写参数: 复制代码 代码如下

  • PHP中实现MySQL嵌套事务的两种解决方案

    一.问题起源 在MySQL的官方文档中有明确的说明不支持嵌套事务: 复制代码 代码如下: Transactions cannot be nested. This is a consequence of the implicit commit performed for any current transaction when you issue a START TRANSACTION statement or one of its synonyms. 但是在我们开发一个复杂的系统时难免会无意中在

随机推荐