文章にすると長くなりそうなので箇条書きにします。
・後半2列がランダムな文字列になっている6列からなるcsvファイルから2次元配列を取得する
・13つ目と45つ目を異なるリストとして扱う
・最大値がその行の2番目に大きい値の2倍を超える行に限り、「0番目の要素, 最大値, (0番目の要素と同じものを含む最後の要素の左隣に位置する)最後から2番目の要素, (0番目の要素と同じものを含む)最後の要素」の順番で取得する(ここの部分が完全でない)
この条件を満たすコードを書きたいのですが、エラーが出て困っています。
お知恵をお越しいただけますと幸いです。宜しくお願いします。
エラー
File "comp.py", line 11, in <module> data = np.loadtxt("renshu2.csv", delimiter = ",", skiprows=1) File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/numpy/lib/npyio.py", line 1146, in loadtxt for x in read_data(_loadtxt_chunksize): File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/numpy/lib/npyio.py", line 1074, in read_data items = [conv(val) for (conv, val) in zip(converters, vals)] File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/numpy/lib/npyio.py", line 1074, in <listcomp> items = [conv(val) for (conv, val) in zip(converters, vals)] File "/Users/macuser/.pyenv/versions/3.7.4/lib/python3.7/site-packages/numpy/lib/npyio.py", line 781, in floatconv return float(x) ValueError: could not convert string to float: 'A'```
コード
comp.py
1import pandas as pd 2import numpy as np 3 4df = np.loadtxt("renshu2.csv", delimiter = ",", skiprows=1) 5para = df[1:3] 6num = [int(s) for s in para] 7id = df[4:] 8for idx, row in num.iterrows(): 9 score = row.sort_values(ascending=False) 10 if score.iloc[0] >= score.iloc[1] * 2: 11 print([idx, score.index[0], id])
ファイル
renshu.csv
1Name,One,Two,Three,Group name,Group member 2A,3,3,14,杉田,"B,F,R" 3B,3,1,2,中村,"A,Q,V" 4C,3,2,2,宮野,"C,J,N"
理想の出力
[A, 14, 中村, "A,Q,V"]
補足情報(FW/ツールのバージョンなど)
iOS 10.14.6, Python 3.7.4, Atom
回答2件
あなたの回答
tips
プレビュー