答案 0 :(得分:0)
您需要做的核心是旋转表并使用count进行汇总。
>>> df = pd.DataFrame(
data=[['Aquatics', 'Swimming', 'Gold'],
['Aquatics', 'Swimming', 'Silver'],
['Aquatics', 'Swimming', 'Silver'],
['Aquatics', 'Rowing', 'Gold'],
['Aquatics', 'Rowing', 'Bronze']],
columns=['Sport', 'Discipline', 'Medal']
)
>>> df[['Discipline', 'Medal']]\
.pivot_table(index='Discipline', columns='Medal', aggfunc=len)\
.reset_index()\
.fillna(value=0)
Discipline Bronze Gold Silver
0 Rowing 1.0 1.0 0.0
1 Swimming 0.0 1.0 2.0
从这里开始,您可以分组或以其他方式分组具有相同奖牌数的运动。或者,如果您要跟踪在运动中分配了相同数量的每枚奖牌的运动,请使用
df[(df['Gold'] == df['Silver']) & (df['Silver'] == df['Bronze'])]