【发布时间】:2016-04-24 06:46:44
【问题描述】:
我有一个熊猫数据框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), Died被丢弃? -
@jezrael,输出是正确的,但总列取整个数据集,因此根据数据集是正确的。 NaN 值为零。