我用的是Python2.7,在使用过程中,发现默认的排序是按照首字母的顺序来的,不知道其他版本是否这样。我今天用DataFrame生成表格,3*4的表格,做的是关于学生成绩及性别的,发现输出的结果居然不是按照我给的排序来的。例子如下:
import pandas as pd
data={"姓名":['王二','李四','张三','小刘','爱情','我的'],"班级":['一班','一班','二班','三班','三班','一班'],"成绩":['99','98','80','82','93','92'],"性别":['男','男','女','女','女','女']}
df1=pd.DataFrame(data)
print df1
输出的结果如下:
姓名 性别 成绩 班级
0 王二 男 99 一班
1 李四 男 98 一班
2 张三 女 80 二班
3 小刘 女 82 三班
4 爱情 女 93 三班
5 我的 女 92 一班
可以看到,排序与我在DataFrame语句中的顺序并不一样,经过网上搜查与实践,发现了两种方法可以使其按顺序排列。
第一种方:添加语句
cols=['姓名','班级','成绩','性别']
df1=df1.ix[:,cols]
输出结果即为按照指定的顺序排列。
第二种方法:
data=[['王二','一班','99','男'],['李四','一班','98','男'],['张三','二班','80','女'],['小刘','三班','82','女'],
['爱情','三班','93','女'],['我的','一班','92','女']]
df1=pd.DataFrame(data,columns=['姓名','班级','成绩','性别'])
print df1
个人认为第二种方法比较好,因为是逐步递进的过程,编写起来比较顺手。