3

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

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

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

CSV 数据如下所示:

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

问题是,它目前正在按名称排序。我想要它在日期。

4

1 回答 1

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'])
于 2012-11-19T11:10:18.527 回答