次のようにグループ化ロジックを詳しく説明します。データフレームdf
考える:平均とカウントによる条件付きグループ化
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
を計算します。また、これは私の質問です。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