前提
{'batch_label': 'testing batch 1 of 1', 'labels':[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2], 'data': array([[-440,-910,-1501,-1667,-1346,-781,94,779,1057,1622,2082,1609,462,-606,-1421,-1912,-2019,-1861,-1541,-1092,-290,796,1637,1909,1817,1633,1298,778,691,1062,-558,-1786,-777,-365,-227,94,162,-292,-795,-763,-437,-166,346,1051,1398,1131,425,-178,-400,-303,-134,-103,-88,-93,19,149,79,-167,-457,-650,-657,-694,-818,-496,146,690,1173,1349,1102,849,453,-124,-497,-745,-1021,-1081,-874,-648,-411,-42,277,395,423,477,521,588,664,433,42,-317,-702,-948,-1159,-1256,-104,636,-708,-1624,-197,1851,2316,2202,1568,202,-603,-1227,-2074,-2626,-2338,-1039,686,2215,2962,2861,2246,1284,435,-357,-1207,-1724,-1767,-1270,-496,63,222,430,759,600,19,-605,-1323,-1955,-1420,-472,-1549,-1381,0],[-470,-387,-200,35,186,226,89,-155,-337,-573,-910,-738,1155,1120,-1110,-886,778,2213,2542,1043,-260,-413,-477,-466,-594,-980,-1235,-1070,-685,-313,58,402,745,986,1067,1055,881,458,-123,-519,-635,-601,-462,-276,-93,-15,-74,75,407,685,797,591,278,74,-45,72,199,-194,-750,-891,-518,-35,-41,543,1255,-988,-3550,-1998,1368,2219,1315,962,780,237,-811,-1884,-2128,-1266,223,1310,1348,758,207,112,305,321,-60,-542,-859,-938,-788,-690,-472,146,851,1183,1046,814,664,196,-223,49,879,34,-885,-282,69,205,-29,-303,-589,-735,-496,-272,-280,-252,-70,107,83,-26,71,195,291,598,755,509,136,-213,-504,-607,-430,-105,117,33,-180,-227,0],... ...,367,363,0,0,0,0,0,0,0,0,0,0,0,0]]), 'filename':['.csv',' .csv',' .csv',' .csv',' ...]}
このような形の辞書型リストを作成しています。
実現したいこと
ここで私がやりたいことは、'data'というラベルにたくさんの数字配列が格納されているのですが、それぞれの末尾に0を647個ずつ補完したいと思っています。
プログラムの34行目以降になりますが、以下のようなエラーが出て作成ができません。
どのようにデバックすれば良いでしょうか。
よろしくお願いいたします。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) <ipython-input-12-ce07c8472c1c> in <module> 4 data2 = [np.pad(data, ((0, 0), (0, 647)))] 5 print(data2) ----> 6 f.write("'data':array(") 7 8 for row in data2: ValueError: I/O operation on closed file.
該当のソースコード
python
1import pandas as pd 2import numpy as np 3 4f = open('output.txt', 'w') 5 6df = pd.read_csv('test_125.csv') 7 8all_files = list(df.columns.values) 9 10files = [] 11for i in range(0, len(all_files), 3): 12 files.append(all_files[i]) 13 14f.write("{'filename':[") 15files2 = ",".join(files) 16for i in files: 17 f.write("'") 18 f.write(i) 19 f.write("'") 20 if i != files[-1]: 21 f.write(",") 22f.write("], ") 23 24df2 = df[files] 25array = df2.values 26label = array[-1].tolist() 27label = [str(int(x)) for x in label] 28 29f.write("'label':[") 30label2 = ",".join(label) 31f.writelines(label2) 32f.write("], ") 33 34array_t = np.array(array).T 35data = [[str(int(k)) for k in l[:-1]] for l in array_t] 36data2 = [np.pad(data, ((0, 0), (0, 647)))] #######← 37print(data2) 38f.write("'data':array(") 39 40for row in data2: 41 f.write("[") 42 row2 = ",".join(row) 43 f.write(row2) 44 f.write("]") 45 if row != data2[-1]: 46 f.write(",") 47f.write(")}") 48 49f.close() 50
補足情報(FW/ツールのバージョンなど)
jupyter notebook を使用
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。