Pandas - 计数值
Pandas - Counting values
我有一个数据框,其中包含多年来参加比赛的运动员的信息。我需要确定同时参加冬季和夏季运动会的运动员比例。
数据框是这样的:
ID, Name, Sex, Age, Height, Weight, Games, Year, Season, City
每个 ID
数字代表一名运动员,在 Season
列中您有 Winter
或 Summer
。我想我需要找到计算 Winter
和 Summer
的 ID
的方法,并将其除以运动员总数。
有什么想法吗?
举个例子:
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)])
结果:刚刚Id A和C都参加了冬季和夏季比赛。
Season Summer Winter
ID
A 1.0 1.0
C 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))
我有一个数据框,其中包含多年来参加比赛的运动员的信息。我需要确定同时参加冬季和夏季运动会的运动员比例。
数据框是这样的:
ID, Name, Sex, Age, Height, Weight, Games, Year, Season, City
每个 ID
数字代表一名运动员,在 Season
列中您有 Winter
或 Summer
。我想我需要找到计算 Winter
和 Summer
的 ID
的方法,并将其除以运动员总数。
有什么想法吗?
举个例子:
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)])
结果:刚刚Id A和C都参加了冬季和夏季比赛。
Season Summer Winter
ID
A 1.0 1.0
C 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))