根据值填充所有数据帧行中的值

时间:2017-04-26 00:31:55

标签: python pandas

所以我有一个数据框如下

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

现在我有另一个字典,如

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

现在,我想在数据框中添加一个新列,如下面的

{{1}}

我如何在熊猫中这样做?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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