csv のデータを読み込んで、 csv の各列の最大値と最小値を求めたいです。
その際、ライブラリは使用せず、求めてみたいです。
下記に書いたコードを載せますが、CSVで読み込んだデータが、文字列で マイナスの数値がうまくintに変換できません。また、読み込んだ時に、\nが末尾に含まれていたり、含まれていなかったり・・
なかなかいい方法がおもいつきません。
アドバイスお願いいたします。
CSV
10.6202894507523649,-4.732210337179897,-4.837565759400999 27.662316204642959,-7.393462117282397,-1.7256234362172673 3-9.000860650190178,5.386582472630646,-0.49756722857258673 4-8.902462874913837,-0.27987478404612354,-4.515285096623288 5-9.391803940946751,8.422614695955076,-4.153502225833776 6-6.749908626465608,-1.3866296185366522,-8.140091097302633 75.498584173099712,0.437729343757562,-8.868594094987536 80.4031336912750447,8.633667135803336,-0.6775380166020355 9-0.5490371265038174,3.9540065878930992,-0.8846440046096333 10-2.7653221752486274,6.519722752462222,-8.147403129377919 11-0.7064688142175655,-3.371742089032077,5.698724767314712 122.324605901134067,-8.180587545724764,1.8611441503787756 134.2874136844746715,7.651221432237712,-9.758625237594975 14-0.07118416779827719,-8.703293523007304,2.55147020764516 150.9039166473499343,-0.08136734204626173,4.399453746803818 163.789725188706406,-3.24691424802052,7.743910414552314 175.272860879216893,7.1741268286134385,-9.574339030500465 18-2.854700835151127,5.68202649205581,-6.998706367872531 198.932633445111268,-1.3022704013075561,-1.7106472363113685 20-6.281687199512367,4.811229460189599,0.4651593596778021 215.790778523828983,-1.4508163203786832,0.2307514968083204 221.7314398932790809,-5.741374011571212,8.292161586979606 23-1.486005284968579,-6.492027354979733,-1.380336172300689 243.8416029592993866,9.977544561079952,3.687784189354762 25-3.17729062109729,-7.694183389165983,6.6567653489826455 26-9.34492566958154,7.161407573706477,6.4924904625646604 274.8969539258859545,0.7732532059573316,-3.0207328669311444 283.020038376578171,2.8392448956466403,5.363404879265021 291.4697854047798913,1.336753542988685,6.253472444305633 30-8.658076535695972,5.488717623169395,-8.429442391668267 31-5.581151598817991,0.3352179609181061,-7.790453356348477 32-9.22102540510602,4.947194842694746,3.189861728855039 33-2.658747691814054,-2.3353224787912623,9.816463195276295 346.675192171048138,-9.362882200541003,5.43167801799604 354.822618432655542,-2.062279431229306,7.642984030597642 364.531020525078219,0.2967780481707081,0.2915914613963224 37-6.674382464558731,-3.1656099540693567,7.670112107646425 38-6.060233912160959,4.7747486900102505,-5.378004161975614 391.4361457264558126,-0.12031127032187072,-2.6786742606274387 402.0896282585619055,-5.493677465305639,2.946501298013617 41-5.652890659682153,6.569278725875002,6.009367363648661 42-8.984796277294473,-8.647130061471328,8.319488948137188 439.406622979075905,-8.748419461239141,-2.6749483520081707 44-5.342407680190107,-6.201013702161038,-6.242373191637807 458.911504267280229,2.8599879664494026,4.939968585487646 460.3919766664994775,4.4542871376702,-9.031401744181535 47-2.5492821387749824,3.3419149402510957,2.49720727200752 487.329362007707573,-1.880143883224413,-0.8806770998478068 49-3.2407234110750167,-7.956493573693184,7.316599607268721 502.4623857225355685,7.272366305142995,9.063826135370082 510.6161047840515721,5.205760831068428,9.603422699210974 52-2.955338447827696,-0.1296749394631309,2.885198738306638 539.163636458373109,-7.190351144089078,-1.5203821018005375 54-2.907406977937783,3.3198013734833243,9.329813309506395 554.398672144888135,9.559107034943118,-0.673642475211512 56-7.983881365880676,7.766138567952364,0.3092120607135378 570.4962173953224376,-1.7754048491853336,-7.386425215869707 58-5.229440628432096,-7.472874286805668,5.115945489361909 59-2.3276670827243144,-1.769984836981557,9.622050341305684 601.658028481070426,9.79695536414436,-1.7516209803704292 61-5.993446796604143,4.760541554067384,5.013762597027796 625.099174291553501,0.550461825269231,2.9747615852339475 63-3.941366858422171,4.579608172554794,3.898916658987835 647.924114027094504,-2.433024865088673,4.245727396766005 65-3.3546291006599223,-5.5385260814403825,-8.686157844328363 660.08514253492516666,9.422576003847436,-6.036660182016069 67-8.142057056634012,9.805504888518723,3.4896576407787787 682.5218422970834364,9.01796200966416,1.6466870577186832 69-0.8223511149339746,0.8327799277704244,5.576635721663219 702.6925674987780983,-0.5943412288335566,-2.322433823460628 71-2.190127459866325,-5.516474026751251,1.0383739254638726 72-8.415790845013145,-8.315620016449245,-8.904152486454286 73-8.845748327859518,7.905282012866024,-0.32583935341251546 74-5.408909876277201,-3.229072680831626,2.0977710961596365 758.954053107761844,5.763149199341417,4.956449516610855 76-2.2797428028821587,-1.8839404003015616,5.279646503197961 776.936277260518754,-3.504555789573896,9.448118755669999 788.374193143785803,-2.483952609539606,0.09156908803776176 79-3.543831933145574,-8.040163484397638,-9.306506952259033 80-0.5370336031619249,7.157325415068495,-6.101876556591943 81-5.240675592688461,-0.6129659503897287,5.124116747135542 82~~~省略~~~
python
1#列の最大と最小を求める 2#ライブラリは使わない 3 4f = open('test1015.csv') 5 6 7a = [] 8b = [] 9c = [] 10d = [] 11 12for s in f: 13 14 a.append(s.split(',')) 15#print(a[0][0]) 16 17a_l = len(a) 18#print(a_l) 19 20 21 22 23 24#二次元配列までいった。縦にはFORぶんかな? 25for i in range(3): 26 for j in range(a_l): 27 if i == 0: 28 29 b.append(a[j][i]) 30 31 elif i == 1: 32 c.append(a[j][i]) 33 34 elif i == 2: 35 36 d.append(a[j][i]) 37 38 39dd = [] 40for s in d: 41 p = s.strip("\n") 42 43 44 dd.append(p) 45 46 47 48#数値に 49b = [float(h) for h in b] 50#print("B",b) 51 52c = [float(n) for n in c] 53#print("C",c) 54dd = [float(L) for L in dd] 55#print("D" ,dd) 56 57 58 59b_b = max(b) 60b_s = min(b) 61print(f"1列目の最大値は{b_b},最小値は{b_s}") 62c_b = max(c) 63c_s = min(c) 64print(f"2列目の最大値は{c_b},最小値は{c_s}") 65dd_b = max(dd) 66dd_s = min(dd) 67print(f"3列目の最大値は{dd_b},最小値は{dd_s}") 68 69 70 71
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。