2016-10-24 14 views
4

私はトランザクションのリストを持つデータフレームを持っています。私は総コストを得ることができるようにexec_priceフィールドをとり、それにサイズフィールドを掛けたいと思います。私が使用して、複数にしようとするとコスト= exec_price *サイズ2台のパンダのフィールドを掛ける

      date security action size ask_price exec_price \ 
order_id                  
188  2016-10-24 10:04:44  AAPL buy  5 116.599998  117.44 
189  2016-10-24 10:04:44  NFLX buy  5  127.5  128.4 
190  2016-10-24 10:04:44  AMD buy  5  6.52  6.65 

      status 
order_id   
188  filled 
189  filled 
190  filled 

だから、私は、新しいフィールドを追加したい

transactions['cost'] = transactions['exec_price'] * transactions['size'] 

私はこの取得:

     date security action size ask_price exec_price \ 
order_id                  
188  2016-10-24 10:04:44  AAPL buy  5 116.599998  117.44 
189  2016-10-24 10:04:44  NFLX buy  5  127.5  128.4 
190  2016-10-24 10:04:44  AMD buy  5  6.52  6.65 

      status       cost 
order_id           
188  filled 117.44117.44117.44117.44117.44 
189  filled  128.4128.4128.4128.4128.4 
190  filled   6.656.656.656.656.65 

どのように私はこれを修正することができます知っていますか?

ありがとうございます。

答えて

5

それはastypeを使用してfloatへstr変更だからそれはです:

transactions['exec_price'] = transactions['exec_price'].astype(float) 

またはより安全な任意のダフ値を処理するために使用to_numeric:あなたはstrの列を掛けるとき

transactions['exec_price'] = pd.to_numeric(transactions['exec_price'], errors='coerce') 

それだけ繰り返されます文字列の内容をスカラー値で表します。

+0

甘い、うまくいった!私はフロート(列)を早くやっていて、うまくいきませんでした。 ありがとう! –

+0

dtypeを変更するには、列の型を安全に強制することができる場合は 'astype'を使用し、それ以外の場合は組み込みの' to_XXXX'メソッドを使用してください。 – EdChum

関連する問題