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常用函数的接口,略有修改,表格如下:

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

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

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

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

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

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

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

Pandas的基础操作:常用函数(求均值,方差,求和,众数,统计元素个数等)/分组运算groupby操作/透视表_第4张图片
在这里插入图片描述

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

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

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

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

10. 分组groupby操作

仍然上面的代码作为例子:(但是由于没有设置随机数种子,所以以下面的数据作为参考)
Pandas的基础操作:常用函数(求均值,方差,求和,众数,统计元素个数等)/分组运算groupby操作/透视表_第7张图片

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

在这里插入图片描述

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

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

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

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

11. 数据透视表

命令格式如下:

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

应用场景:虽然数据可以同多“多层”的index展示,但是还是不够直观,这时可以使用透视表
使用上面的数据作为参考:
Pandas的基础操作:常用函数(求均值,方差,求和,众数,统计元素个数等)/分组运算groupby操作/透视表_第9张图片

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

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

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

你可能感兴趣的:(python,pandas)