擅长:python、mysql、java
<p>我可以通过几个步骤了解如何做到这一点:</p>
<pre><code>import numpy as np, pandas as pd
df['total'] = df['passed'].astype(int)
ldf = pd.pivot_table(df,index=['sponsor','sponsor_class'],columns='year',
values=['total'],aggfunc=len) # total counts
rdf = pd.pivot_table(df,index=['sponsor','sponsor_class'],columns='year',
values=['total'],aggfunc=np.sum) # number passed
cdf = pd.concat([ldf,rdf],axis=1) # combine horizontally
cdf.columns = cdf.columns.get_level_values(0) # flatten index
cdf.reset_index(inplace=True)
columns = ['sponsor','sponsor_class']
yrs = sorted(df['year'].unique())
columns.extend(['{}_total'.format(yr) for yr in yrs])
columns.extend(['{}_passed'.format(yr) for yr in yrs])
cdf.columns = columns
</code></pre>
<p>结果:</p>
^{pr2}$
<p>最后:</p>
<pre><code>cdf.to_csv('/path/to/file.csv',index=False)
</code></pre>