我有一个像这样的df
| count | people | A | B | C |
|---------|--------|-----|-----|-----|
| yes | siya | 4 | 2 | 0 |
| no | aish | 4 | 3 | 0 |
| total | | 4 | | 0 |
| yes | dia | 6 | 4 | 0 |
| no | dia | 6 | 2 | 0 |
| total | | 6 | | 0 |
我想要一个如下的输出
| count | people | A | B | C |
|---------|--------|-----|-----|-----|
| yes | siya | 4 | 2 | 8 |
| no | aish | 4 | 3 | 0 |
| total | | 4 | | 0 |
| yes | dia | 6 | 4 | 0 |
| no | dia | 6 | 2 | 2 |
| total | | 6 | | 0 |
目标是仅当计数值为“是”时,通过乘以A和B来计算列C,但如果列人员值与dia的值相同,dia的值为“是”,dia的值为“否”,则我们必须计算计数值“否”
到目前为止我试了这么多
df.C= df.groupby("Host", as_index=False).apply(lambda dfx : df.A *
df.B if (df['count'] == 'no') else df.A *df.B)
但无法实现目标,任何想法如何才能实现输出
相关问题 更多 >
编程相关推荐