擅长:python、mysql、java
<p>我认为您需要先筛选,然后再将输出添加到筛选列:</p>
<pre><code>m = FamilyVsWWTotal['Customer'] == 'Google'
FamilyVsWWTotal.loc[m, 'total1']=FamilyVsWWTotal[m].groupby(['date','Country'])['Revenues']\
.transform('sum')
print (FamilyVsWWTotal)
Country Customer Revenues date total1
0 USA Exxon 1200 2011-4-3 NaN
1 CAN Google 1800 2011-3-5 1800.0
2 USA Google 1000 2011-4-3 1000.0
3 MEX Microsoft 800 2011-5-7 NaN
</code></pre>
<p>对于单行解决方案:</p>
<pre><code>FamilyVsWWTotal.loc[FamilyVsWWTotal['Customer'] == 'Google', 'total1'] = \
FamilyVsWWTotal[FamilyVsWWTotal['Customer']=='Google'].groupby(['date','Country'])['Revenues']\
.transform('sum')
print (FamilyVsWWTotal)
Country Customer Revenues date total1
0 USA Exxon 1200 2011-4-3 NaN
1 CAN Google 1800 2011-3-5 1800.0
2 USA Google 1000 2011-4-3 1000.0
3 MEX Microsoft 800 2011-5-7 NaN
</code></pre>