2016-09-17 86 views
1

例如,我有一个水果数据集,其中包含名称和颜色。如何根据我选择的水果名称更改颜色列中的值?选择性地更改列中的值。 Python熊猫

 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