У меня вопрос по питону, но я думаю, что любой программист знал бы достаточно, чтобы отправить меня в правильном направлении. Я нашел действительно хороший код для сортировки данных. Вот пример того, что я хочу использовать:
from operator import itemgetter, attrgetter
data = [('red', 1,80), ('blue', 1,900), ('red', 2,50), ('blue', 2,300)]
ss=sorted(data, key=itemgetter(0))
print ss
Моя проблема заключается в получении данных в этом конкретном формате, как указано выше, потому что я считываю свои данные из файла CSV, и я не могу набрать его, как данные выше, потому что у меня есть данные, хранящиеся в файлах.
Я читаю свои данные в Python, как это:
reader = csv.reader(open("Meterdata2.csv","rb"));
name=[]; idc=[]; startD=[]; endD=[]; cons=[]; monthdays=[];
for row in reader:
if row[0] != 'IB_id':
name.append(str(row[1])) # name
idc.append(long(row[2])) # idc_acct
startD.append(tcnvrt.str2datetime(row[3]))
endD.append(tcnvrt.str2datetime(row[4]))
cons.append(int(row[6])) # consumption
monthdays.append((tcnvrt.str2datetime(row[4])-tcnvrt.str2datetime(row[3])).days)
IDC=array(idc); Name=array(name); STARTD=array(startD); # these are numpy.ndarray
END_D=array(endD); CONS=array(cons); MONTHDAYS=array(monthdays)
AA=[IDC,Name,STARTD,END_D,MONTHDAYS,CONS]
Я хочу отсортировать мои данные по моей переменной endD, которая является массивом дат.
Я нашел в Интернете некоторые функции, которые, я думаю, могли бы помочь получить данные в определенной форме для их сортировки, но я не смог их выяснить. Я продолжаю писать эти функции, чтобы применить их к моему примеру, но не могу заставить их работать.
вот функция, которая, я думаю, может сработать для этого (если я изменю переменные):
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
Может кто-нибудь, пожалуйста, подтолкнуть меня в правильном направлении. Спасибо