从Python中的.csv文件排序

时间:2012-11-19 11:04:25

标签: python sorting numpy

所以我使用以下代码输入了一个csv文件:

csvdata = np.loadtxt(sys.argv[2],
                     delimiter=',',
                     dtype={
                            'names': ('year', 'month', 'day', 'ItemName'), 
                            'formats': ('i4', 'i4', 'i4', 'S10')
                           }
                    )

现在,我想根据年,月和日对这些数据进行排序。有人能告诉我怎么做吗????

Csv Data看起来像这样:

2012,3,6,ABCD
2012,3,6,XYZA

问题是,它目前正在对名称进行排序。我希望它出现在日期。

1 个答案:

答案 0 :(得分:4)

它在手册中(http://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html)

  

使用order关键字指定排序时要使用的字段   结构化数组:

>>> dtype = [('name', 'S10'), ('height', float), ('age', int)]
>>> values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38),
...           ('Galahad', 1.7, 38)]
>>> a = np.array(values, dtype=dtype)       # create a structured array
>>> np.sort(a, order='height')                        
array([('Galahad', 1.7, 38), ('Arthur', 1.8, 41),
       ('Lancelot', 1.8999999999999999, 38)],
      dtype=[('name', '|S10'), ('height', '<f8'), ('age', '<i4')])

所以,你想要:

np.sort(csvdata, order=['year', 'month', 'day'])