私はパンダのデータフレーム、df
を持っています。そこからピボットテーブルが次の関数を使って生成されます。パンダ、ピボットテーブルの階層を避ける
def objective2(excel_file):
df = pd.read_excel(excel_file)
# WBC cut-offs
df['WBC_groups'] = pd.cut(df.WBC, [0, 4, 12, 100],
labels=['WBC < 4', 'WBC Normal', 'WBC > 12'])
df['count'] = 1
table = df.pivot_table('count', index=['Sex'],
columns=['WBC_groups', 'Outcome_at_24'],
aggfunc='sum',
margins=True, margins_name='Total')
return table
これは、次の表を生成します。
WBC_groups WBC < 4 WBC Normal WBC > 12 Total
Outcome_at_24 Alive Died Alive Died Alive Died
Sex
Female 10.0 2.0 20.0 6.0 14.0 NaN 86.0
Male 3.0 NaN 28.0 3.0 26.0 4.0 111.0
Total 13.0 2.0 48.0 9.0 40.0 4.0 197.0
表は次のようになりますように、私は列の階層を回避することができます方法:
WBC_groups WBC < 4 WBC Normal WBC > 12 Alive Died Total
Sex
Female 10.0 2.0 20.0 6.0 14.0 86.0
Male 3.0 NaN 28.0 3.0 26.0 111.0
Total 13.0 2.0 48.0 9.0 40.0 197.0
注:データテーブルは正確ではなく、ただのダミーです。
は、出力が正しいですか?列 '(WBC> 12)、死んだ'ドロップですか? – jezrael
@ jezraelの場合、出力は正しいですが、合計の列はデータセット全体を取ります。したがって、データセットごとに正しいです。 NaNの値はゼロです。 – Amani