如何在DataFrame中乘以列的所有值而不是仅基于位置的列?

时间:2017-08-24 18:33:10

标签: python pandas dataframe

假设我有一个看起来像这样的DataFrame:

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.

基本上,我希望找到基于Cost的{​​{1}},如果该费用低于某个阈值,那么我们将重新格式化Bank Name列和多个Cost列的所有值均为Cost,表示10

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您需要查看MyMethod减少操作

all()

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

item()

答案 1 :(得分:0)

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