次のコードを書く簡単な方法はありますか?現在のところ、コードは実行に永遠にかかっています。これは奇妙です。何かが間違っています...目的が複雑すぎるようです。私も言うSettingWithCopyWarning
予告取得:基本的なpython:以前のアイテムに基づいてリストの次のアイテムを作成するにはどうすればいいですか?
値がデータフレーム
目的からスライスのコピーに設定されるようにしようとしていることである:私は4時系列/列を持っている - a, b, c and d
ここで、d
は入力する必要のある出力列です。
a
はa
がb
とc
の間にある場合、戻り次いで、a
がc
下回る場合- 、カラム
d
に0を返し、その後、カラムd
1、 - を返し、その後、
b
より大きい場合前の項目は列d
です。
この最後のif
ステートメントは、列dの前の項目を参照していることに注意してください。
data['d']=1
data['previous_d']=1
for i in range (len(data.a)):
data.previous_d.iloc[i]=data.d.iloc[i-1]
data.stance.iloc[i] = np.where((data.a.iloc[i]> data.b.iloc[i]),1,np.where((data.a.iloc[i]< data.c.iloc[i]),0,data.previous_d.iloc[i]))
コードが動作すれば、すべての問題はありません。コードリファクタリングを行う必要はありません – Rockbar
@Rockbarなぜですか?しかし、質問はhttps://codereview.stackexchange.com/で尋ねる必要があります。 –
'a> bとa