希望对此有所帮助: 我在列(pandas DF)中有干净的float值,如果该值<1(错误的分析数据),则需要将其与另一列(对应轴)的Price值相乘。
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)
有没有一种方法可以使熊猫更容易选择并在选择下繁衍?
答案 0 :(得分:2)
这是一种实现方法:
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
答案 1 :(得分:0)
除了@ Roy2012的答案(+1),这是另一种处理方法。
import pandas as pd
import numpy as np
df = pd.DataFrame({"Price": [10, 50, 75], "Commision": [0.1, 5.0, 0.5]})
df['Price'] = np.where(
df['Price'] < 1, # Condition (price < 1).
df['Price'] * df['Comission'], # What to assign to price when condition is true.
df['Price'] # What to assign to price when condition is false.
)