回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个数据框如下:</p>
<pre><code>df=pd.DataFrame({ 'family' : ["A","A","B","B"],
'V1' : [5,5,40,10,],
'V2' :[50,10,180,20],
'gr_0' :["all","all","all","all"],
'gr_1' :["m1","m1","m2","m3"],
'gr_2' :["m12","m12","m12","m9"],
'gr_3' :["NO","m14","m15","NO"]
})
</code></pre>
<p>我想用以下方式来改变它:</p>
<pre><code>df_new=pd.DataFrame({ 'family' : ["A","A","A","A","B","B","B","B","B","B"],
'gr' : ["all","m1","m12","m14","all","m2","m3","m12","m9","m15"],
"calc(sumV2/sumV1)":[6,6,6,2,4,4.5,2,4.5,2,4.5]
})
</code></pre>
<p/>
<pre><code> family gr calc(sumV2/sumV1)
0 A all 6.0
1 A m1 6.0
2 A m12 6.0
3 A m14 2.0
4 B all 4.0
5 B m2 4.5
6 B m3 2.0
7 B m12 4.5
8 B m9 2.0
9 B m15 4.5
</code></pre>
<p>为了达到新的目的:</p>
<ol>
<li>我希望这些行按“family”X“gr\ux”列的每个唯一值对齐。你知道吗</li>
<li>为每一行计算相应的和(V2)/和(V1),如df\u new中所示。你知道吗</li>
</ol>
<p>我对Python很陌生。软编码对我来说似乎相当复杂。
最好,我不希望“No”记录被列在这个df\u new中,但它也可以保留在输出中。你知道吗</p>