2017-07-14 13 views
2

私は通貨を示す1つの列と価格を示す1つの列を持つpandasデータフレームを持っています。私は、他の2つの列の値に基づいて価格を米ドルに標準化する新しい列を作成したいと考えています。python pandasの他の列の値に基づいて新しい列を作成

例えば、

currency price 
    SGD  100 
    USD  80 
    EUR  75 

新しい列が通貨の場合== SGD

と同様の条件であろう: 価格=価格/ 1.37など

はそう最終的にそれが

currency price new_price 
    SGD  100  72.99 
    USD  80  80 
    EUR  75  65.22 
ようになります。

答えて

2

すべての通貨換算を含む辞書を作成し、価格列を通貨列で割ります(mapped)。 。

df = pd.DataFrame({'currency': ['SGD', 'USD', 'EUR'], 
        'price': [100, 80, 75]}) 
to_usd = {'USD': 1.0, 'SGD': 1.37, 'EUR': 1.15} 
df['new_price'] = df.price/df.currency.map(to_usd) 
print(df) 

プリント:

currency price new_price 
0  SGD 100 72.992701 
1  USD  80 80.000000 
2  EUR  75 65.217391 
関連する問題