Suppose I have the following DataFrame:
In [1]: df
Out[1]:
apple banana cherry
0 0 3 good
1 1 4 bad
2 2 5 good
This works as expected:
In [2]: df['apple'][df.cherry == 'bad'] = np.nan
In [3]: df
Out[3]:
apple banana cherry
0 0 3 good
1 NaN 4 bad
2 2 5 good
But this doesn't:
In [2]: df[['apple', 'banana']][df.cherry == 'bad'] = np.nan
In [3]: df
Out[3]:
apple banana cherry
0 0 3 good
1 1 4 bad
2 2 5 good
Why? How can I achieve the conversion of both the 'apple' and 'banana' values without having to write out two lines, as in
In [2]: df['apple'][df.cherry == 'bad'] = np.nan
In [3]: df['banana'][df.cherry == 'bad'] = np.nan
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…