###前提・実現したいこと
pythonでpandasを使用しています。
-1, 0, 1 しかないnumというcolumnがあり、
numの符号が一致している限り、累積和を計算し、
符号が異なる場合、0にリセットして、
新しい列resultに格納したいと考えています。
###発生している問題・エラーメッセージ
エラーは出ませんが、期待する出力結果になりません。
エラーメッセージ
###該当のソースコード
python
1df = pd.DataFrame({"num": [0, 1, 1, -1, 1, -1, -1, -1, 1]}) 2df["result"] = 0 3df.ix[(df["num"] > 0) & (df["result"].shift(1) >= 0), "result"] = df["result"].shift(1) + 1 4df.ix[(df["num"] < 0) & (df["result"].shift(1) <= 0), "result"] = df["result"].shift(1) - 1 5print(df)
###試したこと
上記のソースコードです。cumsum()を上手く使えばできるのでしょうか?
期待する出力結果:
{result: [0, 1, 2, 0, 1, 0, -1, -2, 0]}
###補足情報(言語/FW/ツール等のバージョンなど)
Win10 x64
Python3.6 x64
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/21 04:56