<p>这就是你需要的吗</p>
<p>观察:我在测试中添加了一行(第二行)</p>
<pre><code>import pandas as pd
data = [
['Athens', 1896, 'HUN', 'Gold']
,['Athens', 1000, 'HUN', 'Gold']
,['Athens', 1997, 'HUN', 'Gold']
,['Athens', 1896, 'AUT', 'Silver']
,['Athens', 1896, 'GRE', 'Bronze']
,['Athens', 1896, 'GRE', 'Gold']
,['Athens', 1896, 'GRE', 'Silver']
]
#Create dataframe
df = pd.DataFrame(data, columns=['City','Edition','NOC','Medal'])
aux_df = df.groupby(by ='NOC')['Edition'].mean().reset_index();
aux_df['Average Before 1996'] = aux_df['NOC'].apply(lambda x: df[(df.NOC == x) & (df.Edition<=1996)].groupby(by ='NOC')['Edition'].mean().reset_index()['Edition'].sum())
aux_df['Average After 1996'] = aux_df['NOC'].apply(lambda x: df[(df.NOC == x) & (df.Edition>1996)].groupby(by ='NOC')['Edition'].mean().reset_index()['Edition'].sum())
aux_df['Count Before 1996'] = aux_df['NOC'].apply(lambda x: df[(df.NOC == x) & (df.Edition<=1996)].groupby(by ='NOC')['Medal'].count().reset_index()['Medal'].sum())
aux_df['Count After 1996'] = aux_df['NOC'].apply(lambda x: df[(df.NOC == x) & (df.Edition>1996)].groupby(by ='NOC')['Medal'].count().reset_index()['Medal'].sum())
#print(df.groupby(by ='NOC').mean())
print(aux_df.to_string())
</code></pre>
<p><a href="https://i.stack.imgur.com/PkST3.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/PkST3.png" alt="enter image description here"/></a></p>