私はパンダを勉強していて、行を繰り返して行を計算しようとしています。
前もってわからない多数の列を持つ 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でパンダを使用しています
パンダのバージョンは 0.7.3 です
ありがとう