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でパンダを使用しています

パンダのバージョンは 0.7.3 です

ありがとう

4

0 に答える 0