我有一個python問題,但我認爲任何程序員都會知道足以讓我朝着正確的方向發展。我發現了一些非常好的排序數據代碼。這是我想用一個示例:從文件中讀入的排序數據
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))
有人可以把我在正確的方向。謝謝
CSV文件內容的樣子? – m1k3y3
它只是一個csv文件,有nubers,文本描述和日期字符串。日期字符是我如何排序。你可以從我發佈的代碼告訴我數據的外觀..我在哪裏讀str,long,int ..謝謝 – user1087809
也許這就是你想知道的。它是一個多重排序,我必須按公司排序它,然後數據 – user1087809