假设我有数据框df:
df.head()
M1 M2 M3 M4
Timestamp
2018-09-20 12:59:57 cat 1 obj_1 name_1 1
2018-09-20 12:58:53 cat 1 obj_2 name_2 1
2018-09-20 12:57:44 else 1 obj_3 name_1 1
2018-09-20 12:57:19 cat 11 obj_2 name_1 1
2018-09-20 12:56:17 cat 11 obj_2 name_1 1
有了这个df,我正在为每一列准备一组数据透视表,显示出现的百分比 (%) 以及它的计数 (N):
df[['M1']].pivot_table(index=df.index.date, aggfunc=(
('%', lambda x: len(x) / df['M1'].count()),
('N', 'size')))
当我遇到准备两个系列的数据透视表时,我想显示M1不是在整个数据框中而是与 M2 类别相关的出现百分比。到目前为止,我已经尝试将分母设置为M2计数,但它是总体计数,而不是M1特定M2类别中的计数:
df[['M1', 'M2']].pivot_table(columns='M2', index='M1', aggfunc=(lambda x: len(x) / df['M2'].count()))
任何线索如何获得M1每个M2类别中的特定百分比?预期输出:
M2 obj_1 obj_2 obj_3
M1
cat 1 value1 value* value*
cat 2 value* value* value*
... ... ... ...
cat 11 value* value* value*
else 1 value* value* value*
其中value1是等的cat 1所有出现中出现的次数。obj_1
森栏
相关分类