pandas中的DataFrame按指定顺序输出所有列的方法
问题:
输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致。
例如:
importpandasaspd grades=[48,99,75,80,42,80,72,68,36,78] df=pd.DataFrame({'ID':["x%d"%rforrinrange(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'ifx>50else'no'forxingrades], 'Employed':[True,True,True,False,False,False,False,True,True,False], 'Grade':grades}) print(df)
输出为:
ClassEmployedExamYearGenderGradeIDParticipatedPassed 0algebraTrue2007F48x0yesno 1statsTrue2007M99x1yesyes 2bioTrue2007F75x2yesyes 3algebraFalse2008M80x3yesyes 4algebraFalse2008F42x4nono 5statsFalse2008M80x5yesyes 6statsFalse2008F72x6yesyes 7algebraTrue2009M68x7yesyes 8bioTrue2009M36x8yesno 9bioFalse2009M78x9yesyes
解决办法
在以上代码中增加以下代码:
cols=['ID','Gender','ExamYear','Class','Participated','Passed','Employed','Grade'] df=df.ix[:,cols]
df=df.ix[:,cols]语句表示,DataFrame的行索引不变,列索引是cols中给定的索引。
输出为:
IDGenderExamYearClassParticipatedPassedEmployedGrade 0x0F2007algebrayesnoTrue48 1x1M2007statsyesyesTrue99 2x2F2007bioyesyesTrue75 3x3M2008algebrayesyesFalse80 4x4F2008algebranonoFalse42 5x5M2008statsyesyesFalse80 6x6F2008statsyesyesFalse72 7x7M2009algebrayesyesTrue68 8x8M2009bioyesnoTrue36 9x9M2009bioyesyesFalse78
以上这篇pandas中的DataFrame按指定顺序输出所有列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。