前提・実現したいこと
meshgridで作成したlist_thetaの0行目と1行目で計算を行うのですが、値の大きさによって計算内容を変え、それを同一のtheta_ijに入れたいのですが、一番最後の行で以下のエラーが発生しました。
発生している問題・エラーメッセージ
values[indexer] = value ValueError: setting an array element with a sequence.
該当のソースコード
python
1 2import pandas as pd 3import numpy as np 4 5df_read_North=pd.read_csv("Uraga_GateCrossingList_20180101NS.csv",encoding="shift-jis") 6df_read_South=pd.read_csv("Uraga_GateCrossingList_20180101NS.csv",encoding="shift-jis") 7df_read_West=pd.read_csv("Uraga_GateCrossingList_20180101WE.csv",encoding="shift-jis") 8df_read_East=pd.read_csv("Uraga_GateCrossingList_20180101WE.csv",encoding="shift-jis") 9 10df_data_North=df_read_North[(df_read_North["i"]==0) & (df_read_North["j"]==0) & (df_read_North["SogKnot"]!=0)] 11df_data_South=df_read_South[(df_read_South["i"]==1) & (df_read_South["j"]==0) & (df_read_South["SogKnot"]!=0)] 12df_data_West=df_read_West[(df_read_West["i"]==0) & (df_read_West["j"]==0) & (df_read_West["SogKnot"]!=0)] 13df_data_East=df_read_East[(df_read_East["i"]==1) & (df_read_East["j"]==0) & (df_read_East["SogKnot"]!=0)] 14 15df_data_NS=pd.merge(df_data_North,df_data_South,how="outer") 16df_data_WE=pd.merge(df_data_West,df_data_East,how="outer") 17df_data_merge=pd.merge(df_data_NS,df_data_WE,how="outer") 18 19df_theta=df_data_merge.groupby('Group').mean()['θ'] 20 21list_theta=np.meshgrid(df_theta,df_theta) 22 23NN=len(df_theta) 24theta_ij=np.abs(list_theta[0]-list_theta[1]) 25df_theta_ij=pd.DataFrame(theta_ij) 26 27for a in range(NN): 28 for b in range(NN): 29 if df_theta_ij.iloc[a,b]<180: 30 df_theta_ij.iloc[a,b]=360-np.abs(list_theta[0]-list_theta[1])
試したこと
行番号と列番号を繰り返し指定して、条件に合うときだけ、値を更新したいので、データフレームにしないでやってみたりしたのですが、ダメでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/11 06:28
2019/12/11 07:44