私はPythonとデータフレームを扱うのが初めてです。私は以下のような形式のデータフレームを持っています。別の列の値に基づいて同じ列に行を分割する
TYPE | FLAG | PROP
---- | ---- | ----
A | 0 | 0.1
B | 0 | 0.2
C | 0 | 0.5
D | 0 | 0.2
A | 1 | 0.15
B | 1 | 0.4
C | 1 | 0.3
D | 1 | 0.15
TYPEのインデックスの新しいデータフレームを作成したいとします。 (FLAGためPROPによるFLAGのためのすなわち分割PROP = 1 = 0)
理想的には、私は(私はそれが助け場合の計算を残してきた)で終わるしたい:
TYPE | INDEX
---- | ----
A | 1.5 (= 0.15/0.1)
B | 2 (=0.4/0.2)
C | 0.6 (=0.3/0.5)
D | 0.75 (=0.15/0.2)
私がした場合私はおそらくこのようなものを書くでしょう。
select type,
one_prop/zero_prop as index
from (
select account_type
, max(case when index=1 then prop else 0 end) as prop_A
, max(case when index=0 then prop else 0 end) as prop_B
from table
) a
ご協力いただければ幸いです。私は感じているdf.groupby()
ここで私を助けるつもりですが、私は完全にはどのようには分かりません。
これは私の問題を単純化したものであり、ソリューションにはあまり影響しないとは思っていませんが、私が興味を持っていない他の列があり、計算を考慮しません。
FLAGとTYPEによって行が重複していますか? – jezrael
いいえ、そうではありません。 TYPE&FLAGの各値の組み合わせは1つだけです。 – tfcoe