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'],
                    'ExamYear': ['2007','2007','2007','2008','2008','2008','2008','2009','2009','2009'],
                    'Class': ['algebra', 'stats', 'bio', 'algebra', 'algebra', 'stats', 'stats', 'algebra', 'bio', 'bio'],
                    'Participated': ['yes','yes','yes','yes','no','yes','yes','yes','yes','yes'],
                    'Passed': ['yes' if x > 50 else 'no' for x in grades],
                    'Employed': [True,True,True,False,False,False,False,True,True,False],
                    'Grade': grades})
print(df)
输出为:
  Class Employed ExamYear Gender Grade ID Participated Passed
0 algebra  True  2007  F  48 x0   yes  no
1 stats  True  2007  M  99 x1   yes yes
2  bio  True  2007  F  75 x2   yes yes
3 algebra False  2008  M  80 x3   yes yes
4 algebra False  2008  F  42 x4   no  no
5 stats False  2008  M  80 x5   yes yes
6 stats False  2008  F  72 x6   yes yes
7 algebra  True  2009  M  68 x7   yes yes
8  bio  True  2009  M  36 x8   yes  no
9  bio False  2009  M  78 x9   yes yes
解决办法
在以上代码中增加以下代码:
cols=['ID','Gender','ExamYear','Class','Participated','Passed','Employed','Grade']
df=df.ix[:,cols]
df=df.ix[:,cols]语句表示,DataFrame的行索引不变,列索引是cols中给定的索引。
输出为:
   ID Gender ExamYear    Class Participated Passed  Employed  Grade
0  x0      F     2007  algebra          yes     no      True     48
1  x1      M     2007    stats          yes    yes      True     99
2  x2      F     2007      bio          yes    yes      True     75
3  x3      M     2008  algebra          yes    yes     False     80
4  x4      F     2008  algebra           no     no     False     42
5  x5      M     2008    stats          yes    yes     False     80
6  x6      F     2008    stats          yes    yes     False     72
7  x7      M     2009  algebra          yes    yes      True     68
8  x8      M     2009      bio          yes     no      True     36
9  x9      M     2009      bio          yes    yes     False     78
来源于https://www.zhangshengrong.com/p/ArXGrLDBNj/
Pandas中的DataFrame按指定顺序输出所有列的方法的更多相关文章
- python数据分析pandas中的DataFrame数据清洗
		pandas中的DataFrame中的空数据处理方法: 方法一:直接删除 1.查看行或列是否有空格(以下的df为DataFrame类型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列 ... 
- pandas中遍历dataframe的每一个元素
		假如有一个需求场景需要遍历一个csv或excel中的每一个元素,判断这个元素是否含有某个关键字 那么可以用python的pandas库来实现. 方法一: pandas的dataframe有一个很好用的 ... 
- pandas 中的DataFrame.where()使用
		pandas.DataFrame.where DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, try_ca ... 
- 【Python学习】解决pandas中打印DataFrame行列显示不全的问题
		在使用pandas的DataFrame打印时,如果表太长或者太宽会自动只给前后一些行列,但有时候因为一些需要,可能想看到所有的行列. 所以只需要加一下的代码就行了. #显示所有列 pd.set_opt ... 
- pandas中,dataframe 进行数据合并-pd.concat()
		``# 通过数据框列向(左右)合并 a = pd.DataFrame(X_train) b = pd.DataFrame(y_train) # 合并数据框(合并前需要将数据设置成DataFrame格式 ... 
- pandas中关于DataFrame 去除省略号
		#显示所有列 pd.set_option('display.max_columns', None) #显示所有行 pd.set_option('display.max_rows', None) #设置 ... 
- pandas中的分组技术
		目录 1 分组操作 1.1 按照列进行分组 1.2 按照字典进行分组 1.3 根据函数进行分组 1.4 按照list组合 1.5 按照索引级别进行分组 2 分组运算 2.1 agg 2 ... 
- Pandas数据帧(DataFrame)
		数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列. 数据帧(DataFrame)的功能特点: 潜在的列是不同的类型 大小可变 标记轴(行和列) 可以对行和列执行算术运算 结构体 ... 
- pandas中DataFrame使用
		切片选择 #显示第一行数据print(df.head(1)) #显示倒数三行数据 print(df.tail(3)) loc df.loc[row_index,col_index] 注意loc是根 ... 
随机推荐
- Catch and Buffer
			通常人们所说的Cache就是指缓存SRAM. SRAM叫静态内存,“静态”指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变. 由于CPU的速度比内存和硬盘的速 ... 
- Python 文件及文件夹处理
			import os,shutil def getfilelist(filepath): filelist = os.listdir(filepath) # 获取filepath文件夹下的所有的文件 # ... 
- 爬虫(三)—— BeautifulSoup模块获取元素
			目录 BeautifulSoup 一.BeautifulSoup简介 二.安装模块 三.解析器 四.Beautiful Soup的使用 五.查找元素 1.遍历文档树 2.搜索文档树 Beautiful ... 
- spring配置mybatis的sqlsessionfactory
			<!--读入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.bean ... 
- [Java Performance] 线程及同步的性能之线程池/ThreadPoolExecutors/ForkJoinPool
			线程池和ThreadPoolExecutors 虽然在程序中可以直接使用Thread类型来进行线程操作,但是更多的情况是使用线程池,尤其是在Java EE应用服务器中,一般会使用若干个线程池来处理 ... 
- uoj#186 【UR #13】Yist
			题目 orz myy 首先注意到答案有单调性,于是我们可以考虑二分一个\(x\),之后去判断一下每次只使用长度为\(x\)的区间能否删出目标序列 显然我们应该贪心地删除需要删除元素中最小的那一个,感性 ... 
- mac  卸载编辑器卸不干净
			Configuration ~/Library/Preferences/ Caches ~/Library/Caches/ Plugins ~/Library/Application Support/ ... 
- 如何在Web项目中配置Spring MVC
			要使用Spring MVC需要在Web项目配置文件中web.xml中配置Spring MVC的前端控制器DispatchServlet <servlet> <servlet-name ... 
- JavaScript翻转字符串方法
			先把字符串转化成数组String.prototype.split(),再借助数组的reverse方法翻转数组顺序(Array.prototype.reverse()),然后把数组转化成字符串. 使用的 ... 
- maven管理多模块
			创建parent项目: 1.打开IDEA,注意这里不要勾选模板,用模板创建过maven项目的小伙伴都知道模板创建项目非常慢,所以这里不要选模板,需要的文件夹我们后面自己来创建就可以了.所以这个页面直接 ... 
