回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这是一个相当小的问题,但它触发了我的强迫症,我一直未能找到一个合适的解决方案,在过去的半个小时。</p>
<p>在后台,我想为一个数据帧中的每个组计算一个值(我们称之为F),这个数据帧来自于现有数据帧中列的聚合度量值。</p>
<p>下面是一个我正在尝试的玩具示例:</p>
<pre><code>import pandas as pd
import numpy as np
df = pd.DataFrame({'A': ['X', 'Y', 'X', 'Y', 'Y', 'Y', 'Y', 'X', 'Y', 'X'],
'B': ['N', 'N', 'N', 'M', 'N', 'M', 'M', 'N', 'M', 'N'],
'C': [69, 83, 28, 25, 11, 31, 14, 37, 14, 0],
'D': [ 0.3, 0.1, 0.1, 0.8, 0.8, 0. , 0.8, 0.8, 0.1, 0.8],
'E': [11, 11, 12, 11, 11, 12, 12, 11, 12, 12]
})
df_grp = df.groupby(['A','B'])
df_grp.apply(lambda x: x['C'].sum() * x['D'].mean() / x['E'].max())
</code></pre>
<p>我想做的是为<code>apply</code>(或<code>lambda</code>)的结果分配一个名称。在不将<code>lambda</code>移到命名函数或在运行最后一行后重命名列的情况下,是否仍要执行此操作?</p>