前提・実現したいこと
Pythonで計算プログラムの作成を行っています。以下のソースコードの中盤くらいまでは、データの読み取りや結合がほとんどです。
抽出したデータを用いて、繰り返し計算を行う機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
single positional indexer is out-of-bounds
該当のソースコード
python
import numpy as np
import pandas as pd
df_N1=pd.read_csv("Uraga_GateCrossingList_20180101NS.csv",encoding="shift-jis")
lN = len(df_N1)
df_S1=pd.read_csv("Uraga_GateCrossingList_20180101NS.csv",encoding="shift-jis")
lS = len(df_S1)
df_W1=pd.read_csv("Uraga_GateCrossingList_20180101WE.csv",encoding="shift-jis")
lW = len(df_W1)
df_E1=pd.read_csv("Uraga_GateCrossingList_20180101WE.csv",encoding="shift-jis")
lE = len(df_E1)
df_NN=df_N1[(df_N1["i"]==0) & (df_N1["j"]==0)]
df_SS=df_S1[(df_S1["i"]==1) & (df_S1["j"]==0)]
df_WW=df_W1[(df_W1["i"]==0) & (df_W1["j"]==0)]
df_EE=df_E1[(df_E1["i"]==1) & (df_E1["j"]==0)]
df_N2=df_NN.groupby('Class').mean()
df_S2=df_SS.groupby('Class').mean()
df_W2=df_WW.groupby('Class').mean()
df_E2=df_EE.groupby('Class').mean()
df_Q1=pd.merge(df_NN,df_SS,how="outer")
df_Q2=pd.merge(df_WW,df_EE,how="outer")
df_Q=pd.merge(df_Q1,df_Q2,how="outer")
df_A1=pd.merge(df_N2,df_S2,how="outer")
df_A2=pd.merge(df_W2,df_E2,how="outer")
df_A=pd.merge(df_A1,df_A2,how="outer")
df_AA=df_A.groupby('Class2').mean()
df_LLL=df_AA.iloc[:,[13]]
df_BBB=df_AA.iloc[:,[18]]
df_VVV=df_AA.iloc[:,[3]]
df_LLLT=df_LLL.T
df_LLLL=pd.concat([df_LLL,df_LLLT])
df_BBBT=df_BBB.T
df_BBBB=pd.concat([df_BBB,df_BBBT])
df_VVVT=df_VVV.T
df_VVVV=pd.concat([df_VVV,df_VVVT])
df_XX=df_Q.groupby('Class').mean()
df_XXX=df_XX.iloc[:,[20]]
df_XXXT=df_XXX.T
df_XXXX=pd.concat([df_XXX,df_XXXT])
c=1
b=1
a=c
for c in range(22):
for a in range(22): df_XXXX.iloc[a,b]=np.abs(df_XXXX.iloc[a,0]-df_XXXX.iloc[22,b]) a=a+1 if a==22: b=b+1 c=c+1
df_Vij=df_XXXX
d=1
e=1
f=d
for vc in range(22):
for va in range(22): df_Vij.iloc[d,e]=np.sqrt(df_VVVV.iloc[d-1,0]* *2+df_VVVV.iloc[22,e]**2-2*df_VVVV.iloc[d-1,0]*df_VVVV.iloc[22,e]*df_XXXX.iloc[d,e]) d=d+1 if d==22: e=e+1 f=f+1
試したこと
1回目の繰り返しは上手くいくのですが、2回目が何故か上手くいきません。列の抽出をdf[]で行っていて、iloc[:,[]]に変えてみたのですが、上手くいきません。エラーメッセージの上には、tupleやらkeyやら書いてありました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー