2012-11-19 3 views
3

Так у меня есть CSV-файл, который я вступил, используя следующий код:Сортировка из CSV-файла в Python

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

Дело в том, что в настоящее время получает отсортированы по названию. Я хотел это на свидании.

+1

Могли бы вы вставить какой-то образец представляет «csvdata»? – jpic

+2

['numpy.sort'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html) – katrielalex

+0

Yup .. Я просто добавил, как выглядит описание. –

ответ

4

Это в руководстве (http://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html)

Используйте ключевое слово заказа указать поле для использования при сортировка структурированный массив:

>>> 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']) 
+0

Отлично ... спасибо человеку! –

+0

@gran_profaci Добро пожаловать - я бы очень рекомендовал вам пройти учебник 'numpy', хотя! –

Смежные вопросы