我正在研究熊猫,我正在尝试对行进行迭代并对行进行一些计算。
我有一个 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
谢谢