Pandas的基础操作:常用函数(求均值,方差,求和,众数,统计元素个数等)/分组运算groupby操作/透视表

刚刚使用Python进行数据分析,分享一些概念和想法,希望可以大家一起讨论,如果理解或者表达有不准确的地方,请多多指点,不吝赐教,非常感谢~~

本文将介绍Pandas操作的最后一个部分,前两篇分别是:
《Pandas的基础操作:介绍/创建/查看数据/赋值/常用函数》:https://blog.csdn.net/weixin_42969619/article/details/96863875
《Pandas的基础操作:合并数据.merge()函数的使用》:https://blog.csdn.net/weixin_42969619/article/details/97132359
《Pandas的基础操作:排序/设置行索引》:https://blog.csdn.net/weixin_42969619/article/details/97113118


**在之前的文章里介绍了一些pandas常用函数的接口,略有修改,表格如下:

常用接口参数返回值说明
1data.mean()axis=0/1默认值为0Series平均值
2data.std()axis=0/1默认值为0Series求每的标准差
3data.var()axis=0/1默认值为0Series求每的方差
4data.median()axis=0/1默认值为0Series求每的中位数
5data.min()axis=0/1默认值为0Series求每的最小值
6data.max()axis=0/1默认值为0Series求每的最大值
7data.sum()axis=0/1默认值为0DataFrame/Series对每求和
8data.cumsum()axis=0/1默认值为0DataFrame/Series对每进行累加
9data.count()axis=0/1默认值为0DataFrame/Series统计非空元素个数
10data.nunique()axis=0/1默认值为0int/Series统计Series中不同值的个数/统计DataFrame中每中几个不同值
11data_series.mode()Series常用在返回对Series中出现最多的元素
12data_series.unique()ndarray只能用在统计Series中存在的不重复元素
13data_series.value_counts()Series只能用在统计Series中每个元素出现的次数

以下列数据作为例子:

# np.random.seed(1)
index = pd.MultiIndex.from_product([['TX', 'FL', 'CA'], ['North', 'South']], 
                                   names=['State', 'Direction'])
data = pd.DataFrame(index=index, data=np.random.randint(0, 10, (6,4)), columns=list('abcd'))
data.reset_index(inplace=True)
data

在这里插入图片描述

  • 按列求均值/方差/中位数
data.mean()
data.std()
data.median()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 求最大最小值
data.min()
data.max(axis=1)

在这里插入图片描述
在这里插入图片描述

  • 按列统计出现次数最多的元素
data.mode()
data.d.mode()

在这里插入图片描述
在这里插入图片描述

  • 按列统计有多少个不同元素
data.nunique()

在这里插入图片描述

  • 显示某列中不重复的元素及其对应的个数
data.a.unique()					# 结果为:array([9, 4, 1, 7])
data.a.value_counts()

在这里插入图片描述

10. 分组groupby操作

仍然上面的代码作为例子:(但是由于没有设置随机数种子,所以以下面的数据作为参考)
在这里插入图片描述

  • 单层分组运算:
data.groupby("Direction").a.min()

在这里插入图片描述

data.a.min()的结果是0

  • 多层分组运算:
data.groupby(["State","b"]).c.sum()

在这里插入图片描述

data.c.sum()的结果是23

11. 数据透视表

命令格式如下:

data.pivot(
	columns='ColumnToPivot',
    index='ColumnToBeRows',
    values='ColumnToBeValues')

应用场景:虽然数据可以同多“多层”的index展示,但是还是不够直观,这时可以使用透视表
使用上面的数据作为参考:
在这里插入图片描述

data.pivot(
    	columns='Direction',
        index='State',
        values=['b','a',"d","c"])

在这里插入图片描述

pivot命令的输出是一个新的DataFrame,但索引往往是“怪异的”,所以我们通常会.reset_index()

  • 13
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值