やりたい事
縦にデータが入ったcsvファイルを横向きにしたいです。
csvファイル
2020 | 2019 | 2018 |
---|---|---|
10 | 100 | 1000 |
20 | 200 | 2000 |
30 | 300 | 3000 |
40 | 400 | 4000 |
50 | 500 | 5000 |
希望する形
date | value |
---|---|
2020 | 10 |
2020 | 20 |
2020 | 30 |
2020 | 40 |
2020 | 50 |
2019 | 100 |
2019 | 200 |
2019 | 300 |
2019 | 400 |
2019 | 500 |
2018 | 1000 |
2018 | 2000 |
2018 | 3000 |
2018 | 4000 |
2018 | 5000 |
試してみたこと
python
1with open('./file.csv', 'r') as f: 2 reader = csv.reader(f) 3 header = next(reader) 4 h=[] 5 t={} 6 for i,hed in enumerate(header): 7 #print(hed) 8 t[hed]=[] 9 for ii,row in enumerate(reader): 10 print(row[1]) 11 h.append(row[ii])
全くうまくいきませんでした、、
どのようにしたらできるでしょうか?
すみませんでした。皆様のアドバイスで希望通りになりましたので下記の方法でできたので備忘録として記載します。
ppaulさんのアドバイス
python
1with open('input.csv') as f: 2 reader = csv.reader(f) 3 table = list(reader) 4#print(table) 5header, *body = table 6#print(*body) 7#print(header) 8 9result = [] 10for i in range(len(header)): 11 for b in body: 12 result.append([header[i], b[i]]) 13 14#print(result) 15with open('output.csv', 'w', newline='') as f: 16 writer = csv.writer(f) 17 writer.writerows(result)
KojiDoiさんのアドバイス
python
1df=pd.read_csv('./input.csv',header=0, dtype='object' ) 2df=df.T.stack().reset_index().drop('level_1',axis=1)
回答2件
あなたの回答
tips
プレビュー