2017-07-29 12 views
0

私は10列のデータフレームを持っています。私は 'age' * 'bmi'を掛けた計算列でなければならない新しい列 'age_bmi'を追加したいと思います。年齢はINT、bmiはFLOATです。パンダの計算列を追加

これで11列の新しいデータフレームが作成されます。

私がやっていることはあまり正しくありません。私はそれが構文の問題だと思う。何か案は?

おかげ

df2['age_bmi'] = df(['age'] * ['bmi']) 
print(df2) 

答えて

2

df2['age_bmi'] = df.age * df.bmiを試してみてください。

カラムの値を取得する必要があるときに関数としてデータフレームを呼び出そうとしています。ディクショナリのようなキーやプロパティでアクセスできます。組み込みのDataFrameメソッドと一致しません。

先日のコメントで誰かがこれをリンクしていて、それはかなり素晴らしいです。 https://www.youtube.com/watch?v=5JnMutdy6Fw

+0

コーリーは、私はビデオだけでなく – JD2775

+0

は、私がチェックアウトしたことをパーフェクト感謝をチェックアウトします今のところそのビデオの最初の1時間は、それはfantastですIC 。そのリンクをありがとう!その男は彼の教えに大きな流れを持っています – JD2775

+0

素晴らしい、あなたがそれを楽しんでいることをうれしく思います。私はまだそれを自分で見ていますが、最初の1時間は "oh sh!t!"のようでした。あなたはそれでやることができるクールなものの上に畏敬の念を3回してください。 –

3

Coryが指摘したように、データフレームを関数として呼び出すと、期待通りに動作しません。ここでは複数の2つの列に4つの方法があります。ほとんどの場合、最初の方法を使用します。

In [299]: df['age_bmi'] = df.age * df.bmi 

または、

In [300]: df['age_bmi'] = df.eval('age*bmi') 

または、

In [301]: df['age_bmi'] = pd.eval('df.age*df.bmi') 

または、

In [302]: df['age_bmi'] = df.age.mul(df.bmi) 
関連する問題