私はパンダの初心者です。私は、スポンサーや企業が撮影した検査のデータフレームを持っている:pandas:2つの異なるディメンションでピボットテーブルを作成しますか?
import pandas pd
df = pd.DataFrame({
'sponsor': ['A71991', 'A71991', 'A71991', 'A81001', 'A81001'],
'sponsor_class': ['Industry', 'Industry', 'Industry', 'NIH', 'NIH'],
'year': [2012, 2013, 2013, 2012, 2013],
'passed': [True, False, True, True, True],
})
今私は年によって出力するCSVは、各スポンサーとそのクラスの行を持つファイル、およびパスと合計レートの列たい:
sponsor,sponsor_class,2012_total,2012_passed,2013_total,2013_passed
A71991,Industry,1,1,2,1
A81001,NIH,1,1,1,1
df
からこの再構成されたデータフレームにはどうすれば到達できますか?私はsponsor
とsponsor_class
でグループ化してから、総数とpassed
がTrue
となる回数をピボットアウトしてから、それらの列を平坦化する必要があると思います。 (。私はpd.write_csv(mydf)
で終わる知っている)
私はこれで始まる試してみた:
df_g = df.groupby(['sponsor', 'sponsor_class', 'year', 'passed'])
しかし、それは私の空のデータフレームを提供します。
私はピボットテーブルをどこかにピックアップしてステータスを渡す必要があると思いますが、どこから始めたらいいかわかりません。
UPDATE:どこか行き方:
df_g = df_completed.pivot_table(index=['lead_sponsor', 'lead_sponsor_class'],
columns='year',
aggfunc=len, fill_value=0)
df_g[['passed']]
は、今、私が出て作業する必要がある(1)どのようにすべての行の数だけでなく、ちょうどpassed
を得るために、および(2)未方法列をCSVファイルにネストします。
これは素晴らしいです、ありがとう! – Richard