首页 > 解决方案 > 熊猫在条件下乘以列值

问题描述

希望能得到帮助:我在列(pandas DF)中有干净的浮点值,如果这个值<1(错误的解析数据),我需要将它与另一列(对应轴)的价格值相乘。

    Price    Comission
    10 000   0.1 
    50 000   5 000 
    75 000   0.5

我这样尝试过:(没有成功)

for i in range (df.shape [0]): 
  if (df['Comission'].iloc(i)<1)&(df['Comission'].iloc(i)>0):
    df['Comission'].iloc(i)= df['Comission'].iloc(i)*df['Price'].iloc(i)

有没有办法在 Pandas 中更轻松地进行选择并在选择下进行乘法运算?

标签: pythonpandasconditional-statements

解决方案


这是一种方法:

df = pd.DataFrame({"price": [10, 50, 75], "commision": [0.1, 5.0, 0.5]})
print(df)

==>
   price  commision
0     10        0.1
1     50        5.0
2     75        0.5


df.loc[df.commision < 1, "commision"] = df.commision * df.price
print(df)

==>
   price  commision
0     10        1.0
1     50        5.0
2     75       37.5

推荐阅读