私はカテゴリー変数といくつかの数値変数を持つpandasデータフレームを持っています。このような何か:カテゴリに基づいて、pandasデータフレームの行を列に変換する方法は?
ls = [{'count':5, 'module':'payroll', 'id':2}, {'count': 53, 'module': 'general','id':2}, {'id': 5,'count': 35, 'module': 'tax'}, ]
df = pd.DataFrame.from_dict(ls)
DFは次のようになります。
df
Out[15]:
count id module
0 5 2 payroll
1 53 2 general
2 35 5 tax
私はidで列とグループにモジュール変数(トランスポーズが正しい言葉です?)に変換します。だから、のようなもの:
これに対する1つのアプローチが適用されます使用することですgeneral_count id payroll_count tax_count
0 53.0 2 5.0 NaN
1 NaN 5 NaN 35.0
:
高価な、そしてあまりにも多くの時間をとります。
df['payroll_count'] = df.id.apply(lambda x: df[df.id==x][df.module=='payroll'])
はしかし、これは複数の欠点が
アーチファクトを作成し、空の データフレームを作成します帽子をきれいにする必要があります。私が感じる
がpandas groupbyでこれを達成するための良い方法ですが、より効率的に、この同じ操作への道を見つけることができません。助けてください。
を使用することができます、最初の行の 'id'は2でなければなりません。 – IanS
それを修正しました..指摘してくれてありがとう.. @ jezraelも素敵な答えを与えました。 –