Pandas小白入门原理解释(一)---将value_counts的结果转为DataFrame

序言

本例讲了如何将value_counts结果转为dataFrame,value_counts的结果是Series,所以本质是将Series转为DataFrame,学会后触类旁通。

学到的知识包括:

  • Series
  • index简介
  • rename_axis
  • reset_index
  • set_index

代码示例

value_counts的结果是一个series,其index为原来列的值,value为值的个数。要将其转为DataFrame需要两个函数rename_axisreset_index.
代码如下:

>>>> df = pd.DataFrame([[i,i*10] for i in range(10)], columns=['a', 'b'])
>>> df
	a	b
0	0	0
1	1	10
2	2	20
3	3	30
4	4	40
5	5	50
6	6	60
7	7	70
8	8	80
9	9	90
>>> df.b.value_counts().rename_axis("b").reset_index(name="counts")
	b	counts
0	0	1
1	10	1
2	20	1
3	30	1
4	40	1
5	50	1
6	60	1
7	70	1
8	80	1
9	90	1

原理讲解

在这里插入图片描述
series转为DataFrame,要想为需要介绍下index类别和两个函数。

带名index 和 默认index

在这里插入图片描述

rename_axis

value_counts的结果是无名index,要给他一个名字,使用rename_axis即可。对于Series,rename_axis可以给index改名字,但不支持给value列改名字。对于DataFram,这个函数额外支持对列改名字。如下:
在这里插入图片描述
rename_axis只有一个axis轴,所以参数axis值为0。在series下,rename_axis只有给index改名字的功能。

reset_index

reset_index对于series对象来说,将series转为dataframe,同时做三件事:

  1. index转为普通列
  2. 给新的dataFrame设置一个默认RangeIndex
  3. 给value列一个名字,这个名字用name参数传递。如下:
>>> s = pd.Series(["dog", "cat", "monkey"])
>>> s.rename_axis("key").reset_index('key', name="animal")
	key	animal
0	0	dog
1	1	cat
2	2	monkey

rename_axis,set_index,reset_index对于DataFrame下的应用

set_index是给DataFrame指定某一列作为index,并抛弃掉原来的index。
如下:
在这里插入图片描述
在这里插入图片描述

reset_index是将DataFrame的index重置为普通列,并设置一个默认index。如下:
在这里插入图片描述
在这里插入图片描述

总结

将value_counts的结果改成DataFrame实质上发生了这些事情:

1. 给Series的无名index重命名。-----用到rename_axis
2. 将series的index改成列,并给一个新无名index,同时给value列重命名。----用到reset_index

其他应用

quantile结果转为DataFrame

>>> df = pd.DataFrame([[i,i*10] for i in range(10)], columns=['a', 'b'])
>>> df.a.quantile([i/4 for i in range(5)]).rename_axis("a_decile").reset_index(name='value_pointer')
	a_decile	value_pointer
0	0.00	0.00
1	0.25	2.25
2	0.50	4.50
3	0.75	6.75
4	1.00	9.00
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值