2011-12-08 11 views
-4

私は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)) 

は、誰かが正しい方向に私を押してくださいすることができます

は、ここで私は(私は、変数を変更した場合)、このために働くかもしれないと思う機能です。ありがとう

+0

:あなたはジップ機能を使用することによってこれを行うことができます? – m1k3y3

+0

nubers、テキストの説明とデータ文字列を持つちょうどcsvファイルです。 datestringsは私がどのようにソートしているかです。あなたはコードから私はstr、長い、int ..読み取るどこのデータが表示されたことを伝えることができます..ありがとう – user1087809

+0

多分これはあなたが知りたいことです。その複数の並べ替え、私は会社とデータでそれを並べ替える必要があります – user1087809

答えて

1

並べ替えの前にタプルのリストに変換したいと思うのですか?

l = zip(name, idc, startD, ...) 
l.sort(key=...) 

を彼らはまっすぐに離れているとして、あなたが行をソートしていない理由を私は理解していない...あなたのcsvファイルの内容がどのように見えるか

l = [] 
for name, idc, ... in reader: 
    if name != ...: 
     continue 
    l.append((str(name), int(idc), ..)) 

sorted(l, key=itemgetter(0)) 
+0

私は仕事から出てくるとき、私はこれらのsugestionsを試してみるよあなたに感謝。 – user1087809

+0

すぐにそれを並べ替えると、私にはうまく聞こえる。私はpy2.4.3を使用していますので、私は持っていないことがいくつかあるかもしれませんが、私はあなたを並べ替えます。 – user1087809

関連する問題