0

私はここにCSVファイルを持っています:http ://www.filedropper.com/excelこれはhttp://pastebin.com/ammzv4FKのように見えます。

私がしたいのはこれです:

対応する行で毎年取得し、月単位の数値を見つけて合計し、変数に割り当てます。

したがって、最初の年である2000年のリストは、次のようになります。

year2000 = ['14744', '2947', '14905', '1748',  '2859',  '11778', '1453',  '5255', '14806', '1858', '10763', '6000']

次に、そのリストを取得したら、リスト内の要素を文字列から整数に変換し、sum()コマンドを使用してそれらを合計できます。

行を出力することはできますが、リストが次のように表示されるため、年番号を除外して残りを変数に格納するのに問題があります。

['2000, 14744, 2947, 14905, 1748,  2859,  11778, 1453,  5255, 14806, 1858, 10763, 6000']

個々の要素ではなく、1つの大きな文字列として、リストはすべての年を一度に出力するため、変数に格納して個別に合計する方法がわからないようです。

これが私のコードです:

with open("file.csv","r") as f:
    for i in range(1): 
        next(f)
    for x in f:
        x=x.split()
        print (x)

しかし、print(x)実行するとすべてが印刷されますが、実際の年数を除外して、その内容を変数に毎年格納するにはどうすればよいですか?

Python3を使用しています。ありがとうございます。

4

1 に答える 1

1

そのような行を取得している場合は、おそらくcsvリーダーを使用していません。モジュールを使用して、年をキーとしてcsv各行をに格納する必要があります。dictこれは、データが整数で構成されている場合にのみ機能します。

data = {}

with open("data.csv") as f:
    reader = csv.reader(f, delimiter="\t")
    reader.next() # Skip header
    for row in reader:
        row = list(map(int, row))
        data[row[0]] = row[1:]

合計を取得するには、組み込みsum関数を使用します。

于 2012-11-18T01:35:57.537 に答える