回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有以下格式的熊猫数据帧:</p>
<pre><code>df = pd.DataFrame(data={'item_code': ['Item1', 'Item2', 'Item3', 'Item1', 'Item1', 'Item2', 'Item2', 'Item1', 'Item3'],
'dollar_amount': ['200.25', '350.00', '120.00', '400.50', '1001.25', '700.00', '350.00', '200.25', '240.00'],
'supplier_code': ['Sup1','Sup1','Sup2','Sup1','Sup1','Sup1','Sup1','Sup2','Sup2']})
</code></pre>
<p>此数据帧的外观如下:</p>
^{pr2}$
<p>我可以通过以下方法得到<code>dollar_amount</code>总结的前N项:</p>
<pre><code>a = data.groupby('item_code', as_index=False).sum()
cnt_srs = a[['item_code','dollar_amount']].sort_values(by=['dollar_amount'], ascending=False).head(15)
cnt_srs
</code></pre>
<p>样本输出前5项(不包括上述数据):</p>
<pre><code> item_code dollar_amount
173 Item1 8,776,906.5400
442 Item2 2,085,528.8170
367 Item3 2,033,746.0500
25 Item4 1,635,830.4040
537 Item5 1,485,672.4050
</code></pre>
<p>现在我想要这些项目的<code>supplier_code</code>。在</p>
<p>我可以使用以下工具获取供应商代码及其最常提供的项目:</p>
<pre><code>N = 1
df1 = data.groupby(['supplier_code'])['item_code'].value_counts().groupby('supplier_code').head(N)
df1
</code></pre>
<p>样本输出:</p>
<pre><code>supplier_code item_code
Sup1 Item4 9
Sup2 Item2 21
Sup3 Item1 7
Sup4 Item5 173
Sup5 Item3 1
Sup6 Item6 12
</code></pre>
<p><strong>我想得到前N个项目及其供应商,其中前N个项目由其美元金额之和确定。</strong></p>
<p><strong>预期输出:</strong></p>
<pre><code>item_code dollar_amount SupplierCode
TopItem1 8,776,906.5400 Sup4
TopItem2 2,085,528.8170 Sup1
TopItem3 2,033,746.0500 Sup3
TopItem4 1,635,830.4040 Sup1
TopItem5 1,485,672.4050 Sup2
</code></pre>
<p>我想要前N项(以美元计)和相应的供应商代码</p>
<p>非常感谢你一直以来的帮助。在</p>