想根据计数、A 和 B 的值计算 C
示例 df:
数数
一种
乙
C
是的
23
2
南
南
23
1
南
是的
41
6
南
我想要的结果
数数
一种
乙
C
是的
23
2
46
南
23
1
0
是的
41
6
246
仅当计数值 = 是时计算 C = A*B 否则 C 值 =0
也就是说,它应该跳过计数的 nan 值
任何帮助都是可观的
我正在尝试这个
for ind, row in df.iterrows():
if df['count'] == 'yes':
df.loc[ ind, 'C'] =row['A'] *row['B']
else:
df.loc[ ind, 'C'] =0
但它给出了错误: ValueError: 系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
最佳答案
另外一个选项:
df.C = df.A.mul(df.B).where(df['count'].eq('yes')).fillna(0)
df
# count A B C
#0 yes 23 2 46.0
#1 NaN 23 1 0.0
#2 yes 41 6 246.0
或者,如果您更喜欢运营商:df.C = (df.A * df.B).where(df['count'] == 'yes').fillna(0)
关于python - 根据条件迭代 Pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66502388/