pandas
私は最近、その分析機能について知り、嬉しく思いました。パフォーマンス アトリビューション レポートの作成用に作成したスプレッドシートを自動化するために、Excel 配列関数を Pandas に相当するものに変換しようとしています。この例では、他の列内の条件に基づいて Excel で新しい列を作成しました。
={SUMIFS($F$10:$F$4518,$A$10:$A$4518,$C$4,$B$10:$B$4518,0,$C$10:$C$4518," ",$D$10:$D$4518,$D10,$E$10:$E$4518,$E10)}
数式は、特定の条件に基づいて、"F" 配列 (有価証券の重み) の値を合計しています。「A」配列 (ポートフォリオ ID) は特定の数値、「B」配列 (証券 ID) はゼロ、「C」配列 (グループの説明) は「」、「D」配列 (開始日) は行の日付です。 「E」配列 (終了日) は、私がいる行の日付です。
Pandas では、DataFrame を使用しています。最初の 3 つの条件でデータフレームに新しい列を作成するのは簡単ですが、最後の 2 つの条件では苦労しています。
reportAggregateDF['PORT_WEIGHT'] = reportAggregateDF['SEC_WEIGHT_RATE']
[(reportAggregateDF['PORT_ID'] == portID) &
(reportAggregateDF['SEC_ID'] == 0) &
(reportAggregateDF['GROUP_LIST'] == " ") &
(reportAggregateDF['START_DATE'] == reportAggregateDF['START_DATE'].ix[:]) &
(reportAggregateDF['END_DATE'] == reportAggregateDF['END_DATE'].ix[:])].sum()
明らかに、最後の 2 つの条件の .ix[:] は何もしていませんが、ループせずに、現在の行で条件付きの合計を作成する方法はありますか? 私の目標は、ループを実行せず、代わりに純粋なベクトル操作を使用することです。