熊猫-计数值

时间:2019-12-15 13:36:09

标签: python pandas series

我有一个数据框,其中包含有关多年来参加比赛的运动员的信息。我需要确定参加过冬季和夏季运动会的运动员的比例。

数据框是这样的:

ID, Name, Sex, Age, Height, Weight, Games, Year, Season, City

每个ID号代表一名运动员,在Season列中,您有WinterSummer。我认为我需要找到一种方法来对具有IDWinter的{​​{1}}进行计数,然后将其除以运动员总数。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这里有个例子:

import pandas as pd
from io import StringIO

data = """
ID,Season
A,Winter
A,Summer
B,Summer
C,Winter
C,Summer
D,Summer
E,Winter
"""

df = pd.read_csv(StringIO(data),sep=',')
df=df.groupby('ID')['Season'].value_counts().unstack().fillna(0)
print(df.loc[(df['Summer'] >0) & (df['Winter'] >0)])

结果:Just ID A和C参加了冬季和夏季比赛。

Season  Summer  Winter
ID                    
A          1.0     1.0
C          1.0     1.0

答案 1 :(得分:0)

尝试一下:

df_both = df.groupby(['ID','Season'])['ID'].count().unstack().fillna(0)
print (len(df_both.loc[(df_both['Summer'] > 0) & (df_both['Winter'] > 0)]) / len(df))