python设置_值是否不持久?
我正试图用Python编写一个小程序,跟踪一年内的股票投资组合,这样基本上就可以记录每一次买入/卖出,并跟踪余额。我正在浏览订单列表,并更新熊猫数据框架,在那里我保存了投资组合。代码看起来很晦涩,但我对Pandas/numpy很陌生:python设置_值是否不持久?,python,pandas,setvalue,Python,Pandas,Setvalue,我正试图用Python编写一个小程序,跟踪一年内的股票投资组合,这样基本上就可以记录每一次买入/卖出,并跟踪余额。我正在浏览订单列表,并更新熊猫数据框架,在那里我保存了投资组合。代码看起来很晦涩,但我对Pandas/numpy很陌生: orders_book = DataFrame(np.zeros((num_of_days,num_of_companies+1)), ldt_timestamps, columns = book_keys) for equity_sym in ls_symbo
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
[股权]
我保留这些评论是为了让您相信,通过在运行时打印,我检查了这个复杂的循环是否正常,正如您所看到的,我使用set\u值更新orders\u book。然而,当循环结束时,我尝试简单地打印orders_book['GOOG'],然后orders_book看起来就像在循环开始之前一样。为什么呢?感谢您的帮助:
编辑:
代码现在已更改,并且工作正常。这不是Panda的错,而是代码中更新/写入函数的错误位置。谢谢你的努力 根据Pandas的作者的说法,set_值返回对新对象的引用。您需要使用concat或append将行添加到数据表中。请参阅Pandas手册中的章节。设置值的语义似乎不明确,它可能会创建一个新的数据框架。请尝试执行类似于orders\u book.ix[交易日期,权益符号]=当前编号的操作instead@ChangShe:不幸的是,没有帮助,但如果我宁愿修改而不是添加?