假设我搜索此pension AND NOT message:(view.html)
这样的数据框,然后我想分别向搜索结果的df[df['a'] > 5]
和b
列添加5和10。
例如,
c
现在我想将5和10添加到> 5的单元格中,结果看起来像这样
a b c
7 2 5
3 4 7
6 1 3
那么,我该怎么做呢?
答案 0 :(得分:5)
可以解决问题的单线:
df.loc[df.a > 5, ['b', 'c']] += (5, 10)
答案 1 :(得分:1)
您可以使用np.where
执行此操作:
In[223]:
(df['b'],df['c']) = np.where(df['a'] > 5, (df['b'] + 5, df['c'] + 10), (df['b'],df['c']))
df
Out[223]:
a b c
0 7 7 15
1 3 4 7
2 6 6 13
这里我们将boolean条件作为第一个arg df['a'] > 5
传递,当True
它返回一个感兴趣的cols元组并添加了标量值时,False
它返回原始值df,这里的技巧是构造不同操作的元组,这样我们就可以执行2个不同的操作并将它们分配给相同cols的元组
答案 2 :(得分:0)
你可以简单地使用这样的loc:
df.loc[df['a']>5,'b'] +=5
df.loc[df['a']>5,'c'] += 10