2

我正在研究熊猫,我正在尝试对行进行迭代并对行进行一些计算。

我有一个 DataFrame,其中包含许多预先不知道的列。我有一些符号,如果符号名称是“AAPL”,我有一个名为“AAPL”的列,一个名为“S_AAPL”的列,一个名为“V_AAPL”的列。

for  pd_prices_index, pd_prices_row in pd_price.iterrows():
    date = pd_prices_index
    for idx, row in pd_orders.iterrows():
        if row['trade_dates'] == date:
        print 'Matching found in date: ' + str(date)
        #
        #Updating the orders
        #
        order_type = row['order'].upper()
        pd_price.ORDER_TYPE[pd_prices_index] = order_type
        symbol_name = row['symbol'].upper()
        pd_price.SYMBOL[pd_prices_index] = symbol_name
        if order_type == 'BUY':
            size = row['size']
        if order_type == 'SELL':
            size = -row['size'] 
        pd_price.QUANTITY[pd_prices_index] = size
        #
        #Updating the symbols values
        #
        s_symbol = 'S_'+symbol_name
        pd_price.xs(pd_prices_index)[s_symbol] = size

最后一个指令不是更新 DataFrame pd_price,因为它当然会创建一个副本。

使用索引 pd_prices_index 和与变量 s_symbol 的值匹配的列的“单元”大小值更新的正确方法是什么?

如果我尝试:

pd_price.xs(pd_prices_index, copy = False)[s_symbol]= size

我收到了这条消息:

raise Exception('cannot get view of mixed-type or '
Exception: cannot get view of mixed-type or non-consolidated DataFrame

我在 macos 10.6.8 上使用 pandas

熊猫的版本是0.7.3

谢谢

4

0 回答 0