python设置_值是否不持久?

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

我正试图用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_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:不幸的是,没有帮助,但如果我宁愿修改而不是添加?