다음과 같이 그룹화 논리를 자세히 설명하고자합니다.평균 및 개수가있는 조건부 그룹화
df =
ID GROUP DAY GRADE TIME_1
1 AAA 1 5 20
1 AAA 1 4 19
1 AAA 1 3 21
1 BBB 2 1 10
2 BBB 2 3 13
내가 ID
, GRADE
, GROUP
및 DAY
으로 그룹 행에 필요하고, 그룹에서 행의 수를 평균 TIME_1
을 계산하십시오 dataframe df
을 감안할 때. 또한 (그리고 이것이 내 질문입니다) GRADE
이 4 또는 5인지 확인하고 싶다면 긍정적 인 등급으로 그룹화해야하며 TIME_1
을 계산해야합니다. 그렇지 않으면 -를 음수로 계산해야합니다.
결과는해야이 하나
result =
GROUP DAY AVG_TIME_1_POSITIVE AVG_TIME_1_NEGATIVE QTY_POSITIVE QTY_NEGATIVE
AAA 1 19.5 21 2 1
BBB 2 0 11.5 0 2
나는이 방법을 사용하지만, GRADE
에 의해 그룹화 조건을 지정하는 방법을 모른다 :
result = df.groupby(['GROUP','GRADE','DAY']).agg({'TIME_1': 'mean',
'ID': 'count'}).reset_index()
하드 질문입니다. 'print (type (mask))'-'Series'입니까? – jezrael