私はこのようなCSVを持っています(そして、でpandas Dataframeに持ち込まれると
read_csv()
、同じように見えます)。
次のロジックに従って、列ad_requestsの値を更新します。
特定の行について、ad_requestsに値がある場合はそのままにしておきます。それ以外の場合は、前の行のad_requestsの値から前の行のインプレッションの値を引いた値を指定します。したがって、最初の例では、最終的に次のようになります。
私は部分的にそこに着きます:
df["ad_requests"] = [i if not pd.isnull(i) else ??? for i in df["ad_requests"]]
そして、これは私が立ち往生するところです。の後、else
「戻って」前の「行」にアクセスしたいのですが、これはパンダの使用方法ではないことはわかっています。行は常に、列ad_tag_nameによって 3 つにグループ化されることに注意してください。Ipd.groupby["ad_tag_name"]
の場合、これを に変換してlist
スライスとインデックス作成を開始できますが、パンダでこれを行うにはもっと良い方法があるはずだと思います (多くのことがあるからです)。
パイソン: 2.7.10
パンダ: 0.18.0