2016-09-17 6 views
1

например, у меня есть набор данных фруктов, который содержит имя и цвет. Как изменить значения в столбце цвета на основе имени фрукта, которое я выбираю?Изменение значений в столбце выборочно. Python Pandas

 Name   Color 
     Apple   NaN 
     Pear   Green 
     Pear   Green 
     Banana  Yellow 
     Watermelon Green 

У меня есть приблизительная идея, но я понятия не имею, как ее кодировать.

 df[Name] == Apple then df[color] == Red 
+2

Для случая образца при условии, что вы можете сделать: 'df.loc [ df ['Name'] == 'Apple', 'Color'] = 'Red'' –

ответ

2

Один из способов заключается в использовании .apply():

In [83]: df 
Out[83]: 
     Name Color 
0  Apple  NaN 
1  Pear Green 
2  Pear Green 
3  Banana Yellow 
4 Watermelon Green 

In [84]: df['Color'] = df.apply(lambda x: 'Red' if x.Name == 'Apple' else x.Color, 1) 

In [85]: df 
Out[85]: 
     Name Color 
0  Apple  Red 
1  Pear Green 
2  Pear Green 
3  Banana Yellow 
4 Watermelon Green 

Другой простой способ заключается в использовании .ix:

In [94]: df 
Out[94]: 
     Name Color 
0  Apple  NaN 
1  Pear Green 
2  Pear Green 
3  Banana Yellow 
4 Watermelon Green 

In [95]: df.ix[df.Name == 'Apple', 'Color'] = 'Red' 

In [96]: df 
Out[96]: 
     Name Color 
0  Apple  Red 
1  Pear Green 
2  Pear Green 
3  Banana Yellow 
4 Watermelon Green 
Смежные вопросы