Pandas数据分析系列6-数据特征分析

本文详细介绍了Pandas的数据特征分析,包括常见统计指标函数、describe函数的应用、sort_values函数的排序操作,以及如何对字符串列进行排序。通过实例展示了数据统计和排序在数据分析中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pandas 数据特征分析

   在前面章节学习了Pandas 两种数据结构SeriesDataFrame,及Pandas如何读取Excel数据格式文件,数据预览、数据清洗及数据提取,接下来了解这些数据征分析。在实际工作中,财务、金融、制造业等数据,需从不同维度的指标进行分析,如合计数、最大数、最小数、平均数等,了解数据的差异,那使用Pandas如何分析?

Pandas 常见重要的描述性统计函数如下表:

提示axis=1 按行计算  axis=0 按列计算,默认是按列

Pandas 常见统计指标函数

   使用门店销售数据.xlsx文件,计算几个常见的统计指标。

import pandas as pd
df=pd.read_excel("门店销售数据.xlsx")
# #计算销售数量列的总和
print("销售数量总和:",df["销售数量"].sum())
#计算零售价格列平均价格,保留2位小数
print("零售价格列平均价格:",df["零售价格"].mean().round(2))
#计算零售价格列中位数,保留2位小数
print("零售价格列中位数:",df["零售价格"].median().round(2))
#计算销售数量列的最大值
print("销售数量列的最大值:",df["销售数量"].max())
#计算销售数量列的最小值
print("销售数量列的最小值:",df["销售数量"].min())

输出效果如下: 

Pandas describe函数

  Pandas中的describe()函数是一个用于统计描述性统计信息的方法。于pandasSeries(一维数据)和DataFrame(二维数据)对象上。describe()函数将返回一系列统计指标,包括计数、均值、标准差、最小值、25%分位数、中位数(50%分位数)、75%分位数和最大值。

默认只对数值类型的列进行统计描述,如需统计所有,加上include=‘all’ 参数

 门店销售数据.xlsx文件

import pandas as pd
df=pd.read_excel("门店销售数据.xlsx")

print(df.describe())

输出效果如下图: 

Pandas sort_values函数 

 上节使用了统计相关的指标函数,如最大值,最小值,总和等,有时候需像Excel 一样进行排序,以便更好的数据展示。

Pandas 提供了sort_values() 排序函数,可以按照某行或某列的值进行降序或升序排序。

sort_values语法结构:

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

语法解析:

by:指定按照哪一列或多列进行排序,可以是列名的字符串或包含列名的列表

axis:指定轴向,0 表示按行排序,1 表示按列排序

ascending:指定排序的顺序,默认为 True 升序排序,设置为 False 则降序排序

inplace:是否在原地修改排序结果,如果设置为 True,则不创建新的 DataFrame 或 Series,直接在原对象上进行排序,默认为 False

kind:指定排序算法类型,可选值有 'quicksort'、'mergesort'、'heapsort',默认为 'quicksort'

na_position:指定缺失值的位置排序,默认为 'last',将缺失值排在最后;设置为 'first',则将缺失值排在最前面。

代码示例:

import pandas as pd
df=pd.read_excel("门店销售数据.xlsx")
df.sort_values(by="销售数量",ascending=False,inplace=True)
print(df)

输出效果图如下: 

多列排序,使用列表方式如:by=["销售数量","零售价格"]

Pandas 如何对字符串列进行排序

  需求:以年度、月份两列对销售明细表数据进行升序排序。

  案例分析:月份的值Jan Mar 等字符串,如果对字符串排序Python基于Unicode编码的字符顺序,即按首个字母对应ASCII码进行排序,“ apple ”, “ cherry ”, “ banana”排序“ apple ”,“ banana”, “ cherry ”。 所以需要月份转换为数字,再进行排序。可以创建字典,将月份做为key,数字做为值,再通pandas map函数进行替换。

 代码示例如下:

import pandas as pd
df=pd.read_excel("门店销售数据.xlsx")
monthDict={"Jan":"01","Feb":"02","Mar":"03","Apr":"04","May":"05",
"Jun":"06"}
df=df.drop("月",axis=1,errors="ignore")
df.insert(2,"月",value=df["月份"].map(lambda x:monthDict[x]))
df=df.sort_values(by=["年度","月"],ascending=True).reset_index(drop=True)
print(df)

 效果图如下:

案例回顾

案例回顾,知识点积小成多

①drop 方法:删除DataFrameSeries中的行或列

df.drop(index, axis=0) #删除行

df.drop(columnName, axis=1)  #删除列

想要在原地删除(就地修改)原始DataFrame,加上inplace=True参数

②insert方法:DataFrame中插入新的

loc:插入新列的位置(索引),可以是一个整数或字符串。

column:指定新列的名称。

value:指定新列的值

想要在原地插入新列(不返回新的DataFrame)加上inplace=True参数

map方法:用于将一个函数应用于Series中的每个元素

1)将函数应用于 Series 的每个元素 ( 示例使用lambda 函数 )
2)使用字典映射替换 Series 中的元素

# 创建一个示例Series

s = pd.Series([1, 2, 3, 4, 5])

# 定义一个字典,将Series中的元素映射为对应的值

mapping = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E’}

s2= s.map(mapping)

print(s2)

Pandas 累计函数

   在pandas中,可以使用累计函数对数据进行累计操作。累计函数包括cumsum()cumprod()cummax()cummin(),分别用于计算累计求和、累计乘积、累计最大值和累计最小值。

   需求:计算门店B1001 2022年度,的销售数量和销售金额的累计和。

代码示例如下:

monthDict={"Jan":"01","Feb":"02","Mar":"03","Apr":"04","May":"05","Jun":"06"}
df=df.drop("月",axis=1,errors="ignore")
df.insert(2,"月",value=df["月份"].map(lambda x:monthDict[x]))
df=df.sort_values(by=["年度","月"],ascending=True).reset_index(drop=True)
df=df.loc[df["门店编号"]=="B1001",["年度","月份","月","销售数量","销售金额"]].set_index(["年度","月份","月"]).cumsum()
print(df)

效果图如下: 

set_index函数用于将DataFrame的一个或多个列设置索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值