我正在尝试用 Python 编写一个小程序来跟踪一年多的股票投资组合,所以基本上记录每一次买卖,并跟踪余额。我正在浏览订单列表并更新我保存投资组合的 Pandas 数据框。代码看起来很晦涩,但我对 Pandas/numpy 很陌生:
orders_book = DataFrame(np.zeros((num_of_days,num_of_companies+1)), ldt_timestamps, columns = book_keys)
for equity_sym in ls_symbols[1:2]:
for trade_date in ldt_timestamps:
if trade_date == ldt_timestamps[0]:
current_number = orders_book.xs(trade_date)[equity_sym]
for transaction in trades:
transaction_date = transaction[0]
transaction_sym = transaction[1]
if ( ( trade_date == transaction_date ) and (equity_sym == transaction_sym ) ):
transaction_order = transaction[2]
transaction_number = transaction[3]
if str(transaction_order) == 'Buy':
current_number += transaction_number
if str(transaction_order) == 'Sell':
current_number -= transaction_number
orders_book.ix[trade_date,equity_sym, current_number] = current_number
[equity_sym] 我保留了这些评论来说服你,我通过在运行时打印我检查了这个复杂的循环工作正常(如你所见,我orders_book
使用更新set_value
)。但是,当循环结束时,我尝试简单print orders_book['GOOG']
,然后orders_book
看起来就像开始时一样,即循环之前。这是为什么?感谢您的帮助:)
编辑:代码现在已更改并且可以正常工作。这不是 Panda 的错,而是代码中更新/写入功能的错误放置。感谢您的努力!