回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>请协助完成以下工作</p>
<pre><code>import pandas as pd
df = pd.DataFrame({'Grp': [1,1,1,1,2,2,2,2,3,3,3,4,4,4], 'Org1': ['x','x','y','y','z','y','z','z','x','y','y','z','x','x'], 'Org2': ['a','a','b','b','c','b','c','c','a','b','b','c','a','a'], 'Value': [0,0,3,1,0,1,0,5,0,0,0,1,1,1]})
df
</code></pre>
<p>***我需要第一个非零值,其“FLAG”=1,其他值为0</p>
<p>详情:</p>
<p>对于每个唯一的“Grp、Org1、Org2”集合,并基于“值”“标志”将1和其他值设为0</p>
<p>如果列中的值均为0,则所有值的标志均为0</p>
<p>如果列中的值都不为零,则第一个实例的标志为1,其他值为0</p>
<p>我期待的输出如下</p>
<pre><code>+----+-----+------+------+-------+------+
| | Grp | Org1 | Org2 | Value | FLAG |
+----+-----+------+------+-------+------+
| 0 | 1 | x | a | 0 | 0 |
| 1 | 1 | x | a | 0 | 0 |
| 2 | 1 | y | b | 3 | 1 |
| 3 | 1 | y | b | 1 | 0 |
| 4 | 2 | z | c | 0 | 0 |
| 5 | 2 | y | b | 1 | 1 |
| 6 | 2 | z | c | 0 | 0 |
| 7 | 2 | z | c | 5 | 1 |
| 8 | 3 | x | a | 0 | 0 |
| 9 | 3 | y | b | 0 | 0 |
| 10 | 3 | y | b | 0 | 0 |
| 11 | 4 | z | c | 1 | 1 |
| 12 | 4 | x | a | 1 | 1 |
| 13 | 4 | x | a | 1 | 0 |
+----+-----+------+------+-------+------+
</code></pre>