如果两个输入都大于0 ,我正试图将组合数除以2
data = {'test':[1,1,0],'test2':[0, 1, 0,]}
df = pd.DataFrame(data)
df['combined'] = df['test'] +df['test2']
df
我正在寻找一种方法(可能是一个if语句,如果test和test2的值都为1,则将df["combined"]除以2。
我已经尝试过了,但是它给出了一个错误
if ((df['test']> 1) and (df['test2']>1)):
df['combined'] / 2
else:
df['combined']
最好的方法是什么?
if
语句中存在两个同类问题。首先,您应该知道(df['test']> 1)
的结果是熊猫系列对象。
0 False
1 False
2 False
Name: test, dtype: bool
if
和and
操作都无法处理pandas Series对象,这就是您看到错误的原因。
最后,您可以使用np.where()
来替换系列,条件是:
mask = (df['test']> 1) & (df['test2']>1)
df['combined'] = np.where(mask, df['combined'], df['combined'] / 2)