私はトレーディング戦略から得られた取引で満ちたデータフレームを持っています。戦略がすでに取引中であれば取引が行われないように取引戦略のロジックを更新する必要がありますが、それは別の問題です。以前の多くの取引の取引データは、csvファイルからデータフレームに読み込まれます。パンダのデータフレームを比較する行が重複している行とドロップする
私は持っているデータのための私の問題です: RowXのEntrydateがExitDate rowX-1より小さいかどうかを判断するために、データフレームの行ごとの比較を行う必要があります。
私のデータのサンプル:それは発生しないはずの取引であるため、
Row 1:
EntryDate ExitDate
2012-07-25 2012-07-27
Row 2:
EntryDate ExitDate
2012-07-26 2012-07-29
行2つのニーズを削除します。
重複する行を特定してから削除するのに問題があります。私はapproach in answer 3 of this questionを試してみましたが、データフレームを手動で繰り返して各行のデータを読み取る必要があるため、理想的ではありません。私の現在のアプローチは以下の通りであり、醜いです。私は、日付を確認し、新しいデータフレームに追加します。さらに、このアプローチにより、最終的なデータフレームに複数の重複が生じます。
for i in range(0,len(df)+1):
if i+1 == len(df): break #to keep from going past last row
ExitDate = df['ExitDate'].irow(i)
EntryNextTrade = df['EntryDate'].irow(i+1)
if EntryNextTrade>ExitDate:
line={'EntryDate':EntryDate,'ExitDate':ExitDate}
df_trades=df_trades.append(line,ignore_index=True)
これをより効率的に行う方法についての考えやアイデアはありますか?
私の実際のデータフレームを再生したい場合は、click hereのデータをサンプリングして見ることができます。
回避しないでください。 –
はい。私は知っている...しかし、それは私が始めることができる唯一の方法だった:) –