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/

原文地址:https://www.cnblogs.com/hankleo/p/11478864.html

时间: 2024-11-08 03:13:20

Pandas中的DataFrame按指定顺序输出所有列的方法的相关文章

python数据分析pandas中的DataFrame数据清洗

pandas中的DataFrame中的空数据处理方法: 方法一:直接删除 1.查看行或列是否有空格(以下的df为DataFrame类型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列索引加上布尔值)• isnull方法 • 查看行:df.isnull().any(axis=1)  • 查看列:df.isnull().any(axis=0)• notnull方法:• 查看行:df.notnull().all(axis=1)• 查看列:df.notnull().all(axis=0

Scrapy指定顺序输出 -《狗嗨默示录》-

items.py import scrapy class CollectipsItem(scrapy.Item): IP = scrapy.Field() PORT = scrapy.Field() POSITION = scrapy.Field() TYPE = scrapy.Field() SPEED = scrapy.Field() CONNECT_TIME = scrapy.Field() SURVIVE_TIME = scrapy.Field() LAST_CHECK_TIME = s

解决pandas中打印DataFrame行列显示不全的问题

在使用pandas的DataFrame打印时,如果表太长或者太宽会自动只给前后一些行列,但有时候因为一些需要,可能想看到所有的行列. 所以只需要加一下的代码就行了. #显示所有列 pd.set_option('display.max_columns', None)#显示所有行pd.set_option('display.max_rows', None)#设置value的显示长度为100,默认为50pd.set_option('max_colwidth',100) 原文地址:https://www

pandas中,dataframe 进行数据合并-pd.concat()

``# 通过数据框列向(左右)合并 a = pd.DataFrame(X_train) b = pd.DataFrame(y_train) # 合并数据框(合并前需要将数据设置成DataFrame格式), 其中,如果axis=1,ignore_index将改变的是列上的索引(属性名) print(pd.concat([a,b], axis=1, ignore_index=False)) 原文地址:https://www.cnblogs.com/komean/p/10670548.html

Pandas中的DataFrame.filter()

>>> df one two three mouse 1 2 3 rabbit 4 5 6 >>> # select columns by name >>> df.filter(items=['one', 'three']) one three mouse 1 3 rabbit 4 6 >>> # select columns by regular expression >>> df.filter(regex='e$

pandas中关于DataFrame 去除省略号

#显示所有列 pd.set_option('display.max_columns', None) #显示所有行 pd.set_option('display.max_rows', None) #设置value的显示长度为100,默认为50 pd.set_option('max_colwidth',100) 原文地址:https://www.cnblogs.com/jiu0821/p/10007920.html

pandas中的分组技术

目录 1  分组操作 1.1  按照列进行分组 1.2  按照字典进行分组 1.3  根据函数进行分组 1.4  按照list组合 1.5  按照索引级别进行分组 2  分组运算 2.1  agg 2.2  transform 2.3  apply 3  利用groupby技术多进程处理DataFrame 我们在这里要讲一个很常用的技术, 就是所谓的分组技术, 这个在数据库中是非常常用的, 要去求某些分组的统计量, 那么我们需要知道在pandas里面, 这些分组技术是怎么实现的. 分组操作 我们

pandas中DataFrame相关

1.创建 1.1  标准格式创建 DataFrame创建方法有很多,常用基本格式是:DataFrame 构造器参数:DataFrame(data=[],index=[],coloumns=[]) In [272]: df2=DataFrame(np.arange(16).reshape((4,4)),index=['a','b','c','d'],columns=['one','two','three','four']) In [273]: df2 Out[273]: one two three

《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)

最近在读<数据结构.算法与应用>这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢 8. 从左至右检查数组a[0:n-1]中的元素,以查找雨x相等的那些元素.如果找到一个元素与x相等,则函数返回x第一次出现所在的位置.如果在数组中没有找到这样的元素,函数则返回-1. // // main.cpp // Test_08 // // Created