【发布时间】:2021-03-06 04:32:07
【问题描述】:
想根据 count、A 和 B 的值计算 C
样本df:
| count | A | B | C |
|---|---|---|---|
| yes | 23 | 2 | nan |
| nan | 23 | 1 | nan |
| yes | 41 | 6 | nan |
我想要的结果
| count | A | B | C |
|---|---|---|---|
| yes | 23 | 2 | 46 |
| nan | 23 | 1 | 0 |
| yes | 41 | 6 | 246 |
仅当计数值 = 是时计算 C = A*B,否则 C 值 =0 也就是说,它应该跳过 count 的 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()。
【问题讨论】:
标签: python pandas dataframe numpy