如何将数据帧中列的所有值相乘,而不仅仅是基于位置的值?



假设我有一个看起来像这样的数据帧:

Bank Name   Entity      Weekly Cost
JPM         Algo        30
Chase       Equities    500

我想写一个函数说,

If the cost under JPM is < 100, then multiply the full column Cost by 10.

所以本质上,我想找到一个基于Bank NameCost,如果该成本低于某个阈值,那么我们将按10重新格式化Cost列和Cost列的多个 ALL 值,这意味着Cost = Cost*10

我该怎么做这样的事情?

您需要检查all()减少操作

In [1627]: if (df.loc[df['Bank Name'] == 'JPM', 'Weekly Cost'] < 100).all():
...:     df['Weekly Cost'] *= 10

或者item()

In [1627]: if (df.loc[df['Bank Name'] == 'JPM', 'Weekly Cost'] < 100).item():
...:     df['Weekly Cost'] *= 10
df['Weekly Cost'] *= 10 ** (df.set_index('Bank Name').at['JPM', 'Weekly Cost'] < 100)
df
Bank Name    Entity  Weekly Cost
0       JPM      Algo          300
1     Chase  Equities         5000

相关内容

最新更新