首页 > 编程 > Python > 正文

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

2020-02-22 23:39:38
字体:
来源:转载
供稿:网友

问题:

输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致。

例如:

import pandas as pdgrades = [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 Passed0 algebra  True  2007  F  48 x0   yes  no1 stats  True  2007  M  99 x1   yes yes2  bio  True  2007  F  75 x2   yes yes3 algebra False  2008  M  80 x3   yes yes4 algebra False  2008  F  42 x4   no  no5 stats False  2008  M  80 x5   yes yes6 stats False  2008  F  72 x6   yes yes7 algebra  True  2009  M  68 x7   yes yes8  bio  True  2009  M  36 x8   yes  no9  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 Grade0 x0  F  2007 algebra   yes  no  True  481 x1  M  2007 stats   yes yes  True  992 x2  F  2007  bio   yes yes  True  753 x3  M  2008 algebra   yes yes False  804 x4  F  2008 algebra   no  no False  425 x5  M  2008 stats   yes yes False  806 x6  F  2008 stats   yes yes False  727 x7  M  2009 algebra   yes yes  True  688 x8  M  2009  bio   yes  no  True  369 x9  M  2009  bio   yes yes False  78

以上这篇pandas中的DataFrame按指定顺序输出所有列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表