python pandas ilocメソッドについて
list0 = [] for number in df['number']: list1 = [] list1 += [number] if len(list1) == 1: m0 = List0.iloc[[0]].mean(axis = 1).to_list() std0 = List0.iloc[[0]].std(axis = 1).to_list() m1 = List0.iloc[[1]].mean(axis = 1).to_list() std1 = List0.iloc[[1]].std(axis = 1).to_list() if num == num and std0[0] != 0: pred_num = m1[0] + (num - m0[0]) * std1[0] / std0[0] else: pred_num = m1[0] rou_pred_num = round(pred_num,2) else len(list1) == 2: m1 = List0.iloc[[1]].mean(axis = 1).to_list() std1 = List0.iloc[[1]].std(axis = 1).to_list() m2 = List0.iloc[[2]].mean(axis = 1).to_list() std2 = List0.iloc[[2]].std(axis = 1).to_list() if num == num and std1[0] != 0: pred_num = m2[0] + (num - m1[0]) * std2[0] / std1[0] else: pred_num = m2[0] rou_pred_num = round(pred_num,2)
上述のようなコードを書いているのですが、if len(list1) == 1:以下の処理をdef関数ですっきり表現したいです。ただ、iloc関数の引数に整数しか取れないとエラーが出てしまいます。このメソッドはそもそもこういうものなのか、はたまた引数を更新する記述方法があるのか知りたいです。
拙い表現で質問が伝わりにくいと感じたので補足させていただきますと、リストの要素の個数に対応した行の平均値・標準偏差を取得したいが、その際にilocの引数を変数として楽に表現できるか否か、できるならどのようなコードになるか、を教えていただきたいです。
あなたの回答
tips
プレビュー