2017-04-26 109 views
4

所以我有一個數據幀如下填充值

name, car 
    foo, bmw 
    bar, audi 
    baz, tesla 
    foobaz, bmw 

現在我還有一個字典一樣

car_type = {'bmw': 'gas', 'audi': 'hybrid', 'tesla': 'electric'} 

現在,我要到一個新的列添加到數據框如下

name, car, type 
    foo, bmw, gas 
    bar, audi, hybric 
    baz, tesla, electric 
    foobaz, bmw, gas 

我該如何做到這一點在熊貓?

回答

4
df['easy_peasy'] = df.car.map(car_type) 
4

如果你的dict鍵沒有包含所有車名,並且你想用某種默認類型填寫缺少的車名,那麼這將有所幫助。

df['type'] = df.car.map(lambda x: car_type[x] if x in car_type else 'water') 

在細節

df['name'] = ['foo', 'bar', 'baz', 'faz', 'zaz'] 
df['car'] = ['bmw', 'audi', 'tesla', 'bmw', 'skoda'] 
car_type = {'bmw': 'gas', 'audi': 'hybrid', 'tesla': 'electric'} 
df['type1'] = df.car.map(car_type) 
df['type2'] = df.car.map(lambda x: car_type[x] if x in car_type else 'water') 

打印(DF)

name car  type1  type2 
0 foo bmw  gas  gas 
1 bar audi hybrid hybrid 
2 baz tesla electric electric 
3 faz bmw  gas  gas 
4 zaz skoda  NaN  water 
+0

尼斯溶液也+1 – jezrael