私は最近、Rからpythonへの切り替えを行い、Rのdata.tableを使用するのとは対照的に、データフレームに再び慣れていく上でいくつかの問題を抱えています。私が抱えていた問題は、文字列のリストを取得し、値をチェックしてから、その文字列の数を合計し、ユーザー別に合計したいということです。パンダ集計の条件付き合計
A_id B C
1: a1 "up" 100
2: a2 "down" 102
3: a3 "up" 100
3: a3 "up" 250
4: a4 "left" 100
5: a5 "right" 102
とリターン:だから私は、このデータを利用したいと思い
A_id_grouped sum_up sum_down ... over_200_up
1: a1 1 0 ... 0
2: a2 0 1 0
3: a3 2 0 ... 1
4: a4 0 0 0
5: a5 0 0 ... 0
私はRのコードでそれをやった前しかし
>DT[ ,list(A_id_grouped, sum_up = sum(B == "up"),
+ sum_down = sum(B == "down"),
+ ...,
+ over_200_up = sum(up == "up" & < 200), by=list(A)];
のすべて(data.table使用します)私の最近のPythonの試みは失敗しました:
DT.agg({"D": [np.sum(DT[DT["B"]=="up"]),np.sum(DT[DT["B"]=="up"])], ...
"C": np.sum(DT[(DT["B"]=="up") & (DT["C"]>200)])
})
ありがとうございます!それは簡単な質問のように思えますが、私はそれをどこでも見つけることができませんでした。