pandas 分组统计的三个函数 pivot table crosstab groupby

最近在做数据,记录一下遇到的问题,解决的方式,

有一个数据,如图

我想统计每年的idx_reply, idx_sat, idx_default的频数 交叉统计。

探索了一下午,做法是这样的。

data_test

data_test.groupby(data_test['year'])['idx_reply'].value_counts().unstack()

使用groupby 默认会把分组的作为索引 ,如果不用 unstack, 就会是这样

用了unstack ,就整齐一点

同样的效果,也可以使用crosstab 达到。

pd.crosstab(index=data_test['year'], columns=data_test['idx_reply'])

使用pivot_table,没有办法弄出上面的效果。

感觉就是crosstab命令做直接。还可以计算百分比

这里crosstab的margins 选项是

normalize : bool, {'all', 'index', 'columns'}, or {0,1}, default False
        Normalize by dividing all values by the sum of values.

        - If passed 'all' or `True`, will normalize over all values.
        - If passed 'index' will normalize over each row.
        - If passed 'columns' will normalize over each column.
        - If margins is `True`, will also normalize margin values.

后续还会继续学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值