Day1--python三大库-Pandas

Pandas数据处理

pandas是专门为了处理表格和混杂数据设计的python库

2.series

1.series的创建

python 复制代码
import pandas as pd
s = pd.Series([1,2,3,4,5])

左边一列为数据值索引,右边才是数据

自定义索引:

python 复制代码
x = pd.Series(range(4),index=['a','b','c','d'])

3.Series里访问数据

4.Series的常用方法

python 复制代码
import numpy as np
import pandas as pd


# 1.series的创建

s = pd.Series(range(10))
print(s)

# 自定义索引
x = pd.Series(range(4),index=['a','b','c','d'])


# Series的属性

'''
    index : Series的索引
    values : Series的值
    dtype或dtypes : Series的元素类型
    shape : Series的形状
    ndim : Series的维度
    size : Series的元素个数
    name : Series的名称
    loc[] : 显式索引,按标签索引或切片
    iloc[] : 隐式索引,按位置索引或切片
    at[] : 使用标签访问单个元素
    iat[] : 使用位置访问单个元素
'''

# 显式索引
print(x.loc['b'])
# 隐式索引
print(x.iloc[0])


# 访问Series数据

print(x.iat[1])
print(x['a'])
print(x[x<3])
x['e'] = 5
x['f'] = 6
print(s.head())     # 默认前五行
print(s.tail())     # 默认后五行


# Series常用方法

"""
head() : 查看前n行数据,默认5行
tail() : 查看后n行数据,默认5行
isin() : 判断元素是否包含在参数集合中
isna() : 判断是否为缺失值
sum()  : 求和,自动忽略缺失值
mean() : 平均值
min()  : 最小值
max()  : 最大值
var()  : 方差
std()  : 标准差
median() : 中位数
mode() : 众数
quantile(q) : 分位数,q取0-1之间
describe() : 常见统计信息(count,mean,std,min,25%,50%,75%,max)
value_counts() : 每个唯一值的出现次数
count() : 非缺失值个数(去重)
nunique() : 唯一值个数(去重)
unique() : 获取去重后的值数组
drop_duplicates() : 去除重复项
sample() : 随机抽样
sort_index() : 按索引排序
sort_values() : 按值排序
replace() : 替换值
keys() : 返回Series的索引对象
"""


# 案例1:创建一个包含10名学生成绩的Series,成绩范围在50-100之间,计算平均分,最高分,最低分,并找出高于平均分的学生人数

np.random.seed(42)
scores = pd.Series(np.random.randint(50,101,10),index = ['学生' + str(i) for i in range(1,11)])
print(scores)

# 得到数据
mean = scores.mean()
max = scores.max()
min = scores.min()
print(mean)
print(max)
print(min)
scores[scores > mean].count()


'''
案例二:给定某城市一周每天的最高温度Series,完成以下任务:
找出温度超过30度的天数
计算平均温度
将温度从高到低排序
找出温度变化最大的两天
'''

tem = pd.Series([28,31,29,32,30,27,33],index = ['周一','周二','周三','周四','周五','周六','周日'])
print(f'温度超过30度的天数是${tem[tem>30]}')
print(f'平均气温是${tem.mean()}')
print('从高到低排序')
print(tem.sort_values())
t = tem.diff().abs()    # diff()算逐差
print(f'温度变化最大的两天是:${tem[t.sort_values(ascending = False).head(2).keys()]}')


'''
案例三:股票价格分析
给定某股票连续10个交易日的收盘价Series:
计算每日收益率(当日收盘价/前日收盘价 - 1)
找出收益率最高和最低的日期
计算波动率(收益率的标准差)
'''

prices = pd.Series([102.3,103.5,105.1,104.8,106.2,107.0,106.5,108.1,109.3,110.2],index=pd.date_range('2023-01-01',periods=10))
print(prices)

p1 = prices.pct_change()     # pct_change() 算收益率
maxday = p1.idxmax()         # idxmax 最大值对应的索引
minday = p1.idxmin()         # idxmin 最小值对应的索引
p2 = p1.std()
print(f'收益率是{p1}')
print(f'收益率最高的一天是{maxday}')
print(f'收益率最低的一天是{minday}')
print(f'波动率是{p2}')


'''
销售数据分析
某产品过去12个月的销售量Series:
计算季度平均销量(每3个月为一个季度)
找出销量最高的月份
计算月环比增长率
找出连续增长超过2个月的月份
'''

# 数据
sales = pd.Series([120,135,145,160,155,170,180,175,190,200,210,220],index=pd.date_range('2022-01-01',periods=12,freq='MS'))

# 季度的平均销量
sales.resample('QS').mean()     # 重新采样
# 最大销量对应月份
s_max = sales.max()
# 增长率
s1 = sales.pct_change()
# 连续增长超过2个月的月份
s = s1 > 0
print(s[s.rolling(3).sum()==3].keys().tolist())


'''
每小时销售数据分析
某商店每小时销售额Series:
按天重采样计算每日销售额
计算每天营业时间(8:00-22:00)和非盈利时间的销售额比例
找出销售额最高的3个小时
'''

np.random.seed(42)
hours_sales = pd.Series(np.random.randint(0,100,24),index = pd.date_range('2022-01-01',periods=24,freq='h'))
print(hours_sales)

# 重采样
day_sales = hours_sales.resample('D').sum()
print(day_sales)

# 计算每天营业时间和非营业时间的比例
hours_sales.between_time('8:00','22:00')        # 筛选一段时间内的
business_hours_sales = hours_sales[(hours_sales.index.hour>=8) & ((hours_sales.index.hour<=22))].sum()
print(business_hours_sales)
print(business_hours_sales / (day_sales - business_hours_sales))
# 营业额最高的三小时
print(hours_sales.nlargest(3))
相关推荐
zhaoshuzhaoshu8 分钟前
人工智能(AI)发展史:详细里程碑
人工智能·职场和发展
Luke~9 分钟前
阿里云计算巢已上架!3分钟部署 Loki AI 事故分析引擎,SRE 复盘时间直接砍掉 80%
人工智能·阿里云·云计算·loki·devops·aiops·sre
weixin_1562415757610 分钟前
基于YOLOv8深度学习花卉识别系统摄像头实时图片文件夹多图片等另有其他的识别系统可二开
大数据·人工智能·python·深度学习·yolo
AI_Claude_code15 分钟前
ZLibrary访问困境方案三:Web代理与轻量级转发服务的搭建与优化
爬虫·python·web安全·搜索引擎·网络安全·web3·httpx
QQ6765800815 分钟前
AI赋能轨道交通智能巡检 轨道交通故障检测 轨道缺陷断裂检测 轨道裂纹识别 鱼尾板故障识别 轨道巡检缺陷数据集深度学习yolo第10303期
人工智能·深度学习·yolo·智能巡检·轨道交通故障检测·鱼尾板故障识别·轨道缺陷断裂检测
小陈工17 分钟前
2026年4月7日技术资讯洞察:下一代数据库融合、AI基础设施竞赛与异步编程实战
开发语言·前端·数据库·人工智能·python
tq108618 分钟前
组织的本质:从科层制到伴星系统的决断理论
人工智能
科技与数码21 分钟前
互联网保险迎来新篇章,元保方锐分享行业发展前沿洞察
大数据·人工智能
时空无限23 分钟前
ansible 由于不同主机 python 版本不同执行报错
python·ansible
ZhengEnCi27 分钟前
P2E-Python字典操作完全指南-从增删改查到遍历嵌套的Python编程利器
python