いくつかの株式でイベント調査を実行しています。その結果、列が株式ティッカー シンボル (SPY、GOOG、AAPL など) であり、インデックスがタイムスタンプである pandas DataFrame が生成されます。DataFrame 内のセルの値は NaN または 1 です。イベント DataFrame に基づいて注文 DataFrame を生成したいと思います。cell == 1 ごとにオーダーを作成したいので、applymap が適していると思いました。ただし、 applymap を使用すると、セルのインデックスと列が削除されるようです。以下のコードを試しました:
def appendOrder(orders, value):
if value == 1:
index = ["Year", "Month", "Day", "Stock", "OrderType", "Amount"]
s = pd.Series(index=index)
s["Stock"] = value.index
def createOrders(events):
columns = ["Year", "Month", "Day", "Stock", "OrderType", "Amount"]
orders = pd.DataFrame(columns=columns)
events.applymap(lambda x: appendOrder(orders,x))
上記のコードは、値にインデックスがないため、appendOrder メソッドで中断します。
applymap が DataFrame で使用されている場合、インデックスと列の情報を保持する方法はありますか?
編集
イベント DataFrame のスニペットを次に示します。
SPY GOOG AAPL XOM
2013-10-1-16:00:00 NaN 1 NaN 1
2013-10-2-16:00:00 NaN NaN NaN NaN
2013-10-3-16:00:00 NaN NaN NaN NaN
2013-10-4-16:00:00 1 NaN NaN NaN
2013-10-5-16:00:00 NaN NaN NaN NaN
2013-10-6-16:00:00 1 NaN 1 NaN
2013-10-7-16:00:00 NaN NaN NaN NaN
2013-10-8-16:00:00 NaN 1 NaN NaN
上記のイベント DataFrame を以下の注文 DataFrame に変換したいと思います。
Year Month Day Stock OrderType Amount
0 2013 10 1 GOOG Buy 100
1 2013 10 1 XOM Buy 100
2 2013 10 4 SPY Buy 100
3 2013 10 6 SPY Buy 100
4 2013 10 6 AAPL Buy 100
5 2013 10 8 GOOG Buy 100
それが少し明確になることを願っています。