当前位置: 首页 > wzjs >正文

运动猿app 网站开发基于5G的网站设计

运动猿app 网站开发,基于5G的网站设计,hanchengkeji杭州网站建设,溧水做网站Pandas 数据检索技术全面指南 1. 引言 Pandas 是 Python 数据分析的核心库,提供了高效便捷的数据检索功能。无论是简单的条件筛选还是复杂的分组聚合,Pandas 都能优雅地处理。本文将详细介绍 Pandas 的各种数据检索技术,并通过实际代码示例…

Pandas 数据检索技术全面指南

1. 引言

Pandas 是 Python 数据分析的核心库,提供了高效便捷的数据检索功能。无论是简单的条件筛选还是复杂的分组聚合,Pandas 都能优雅地处理。本文将详细介绍 Pandas 的各种数据检索技术,并通过实际代码示例展示其强大功能。

2. 基础条件查询

2.1 布尔索引

最基本的条件查询方式是使用布尔索引:

import pandas as pd# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'Age': [25, 30, 35, 40, 45],'Salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)# 选择年龄大于30的记录
result = df[df['Age'] > 30]
print(result)

解释

  • df['Age'] > 30 返回一个布尔 Series
  • 将这个布尔 Series 作为索引传入 DataFrame,会返回所有值为 True 的行

2.2 多条件组合

可以使用 & (与)、| (或)、~ (非) 组合多个条件:

# 选择年龄大于30且工资小于80000的记录
result = df[(df['Age'] > 30) & (df['Salary'] < 80000)]
print(result)# 选择年龄小于30或大于40的记录
result = df[(df['Age'] < 30) | (df['Age'] > 40)]
print(result)

注意:每个条件必须用括号括起来,因为运算符优先级问题。

3. query() 方法

query() 方法提供了一种更简洁的条件查询方式:

3.1 基本查询

# 使用query方法选择年龄大于30的记录
result = df.query('Age > 30')
print(result)

3.2 多条件查询

# 选择年龄大于30且工资小于80000的记录
result = df.query('Age > 30 and Salary < 80000')
print(result)# 使用or条件
result = df.query('Age < 30 or Age > 40')
print(result)

3.3 使用变量查询

# 定义变量
min_age = 30
max_salary = 80000# 在query中使用变量
result = df.query('Age > @min_age and Salary < @max_salary')
print(result)

优点

  • 语法更简洁
  • 可以直接使用列名而不需要重复写df[]
  • 支持使用外部变量(需要加@前缀)

4. 分组聚合查询

4.1 groupby() 基础

# 创建包含部门的示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'Department': ['HR', 'IT', 'HR', 'IT', 'Finance'],'Salary': [50000, 60000, 70000, 80000, 90000]}
df = pd.DataFrame(data)# 按部门分组并计算平均工资
result = df.groupby('Department')['Salary'].mean()
print(result)

输出

Department
Finance    90000
HR        60000
IT        70000
Name: Salary, dtype: int64

4.2 多重分组

# 添加更多数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva', 'Frank'],'Department': ['HR', 'IT', 'HR', 'IT', 'Finance', 'Finance'],'Gender': ['F', 'M', 'M', 'M', 'F', 'M'],'Salary': [50000, 60000, 70000, 80000, 90000, 85000]}
df = pd.DataFrame(data)# 按部门和性别分组,计算平均工资
result = df.groupby(['Department', 'Gender'])['Salary'].mean()
print(result)

输出

Department  Gender
Finance     F         90000M         85000
HR          F         50000M         70000
IT          M         70000
Name: Salary, dtype: int64

4.3 聚合函数

可以同时应用多个聚合函数:

# 按部门分组,对工资应用多个聚合函数
result = df.groupby('Department')['Salary'].agg(['mean', 'max', 'min', 'count'])
print(result)

输出

          mean    max    min  count
Department                         
Finance   87500  90000  85000      2
HR        60000  70000  50000      2
IT        70000  80000  60000      2

5. 透视表 (pivot_table)

透视表是强大的数据汇总工具,可以看作是高级版的分组聚合。

5.1 基本透视表

# 创建透视表,计算各部门的平均工资
result = pd.pivot_table(df, values='Salary', index='Department', aggfunc='mean')
print(result)

5.2 多维度透视表

# 按部门和性别计算平均工资
result = pd.pivot_table(df, values='Salary', index='Department', columns='Gender', aggfunc='mean')
print(result)

输出

Gender         F      M
Department             
Finance   90000  85000
HR        50000  70000
IT          NaN  70000

5.3 多重聚合函数

# 对同一数据应用多个聚合函数
result = pd.pivot_table(df, values='Salary', index='Department', aggfunc=['mean', 'max', 'min', 'count'])
print(result)

5.4 填充缺失值和汇总

# 添加margins参数显示总计
result = pd.pivot_table(df, values='Salary', index='Department', columns='Gender', aggfunc='mean',margins=True,margins_name='Total')
print(result)

输出

Gender         F      M   Total
Department                     
Finance   90000  85000  87500
HR        50000  70000  60000
IT          NaN  70000  70000
Total    70000  75000  72500

6. 高级检索技巧

6.1 isin() 方法

# 选择特定部门的员工
departments = ['HR', 'Finance']
result = df[df['Department'].isin(departments)]
print(result)

6.2 between() 方法

# 选择工资在60000到80000之间的员工
result = df[df['Salary'].between(60000, 80000)]
print(result)

6.3 str 访问器

# 选择名字以A开头的员工
result = df[df['Name'].str.startswith('A')]
print(result)# 选择名字包含a的员工(不区分大小写)
result = df[df['Name'].str.contains('a', case=False)]
print(result)

7. 性能优化技巧

7.1 使用query()提高性能

对于大型DataFrame,query()通常比布尔索引更快:

# 创建大型DataFrame
import numpy as np
large_df = pd.DataFrame({'A': np.random.rand(1000000),'B': np.random.rand(1000000)})# 比较两种方法的性能
%timeit large_df[(large_df['A'] > 0.5) & (large_df['B'] < 0.5)]
%timeit large_df.query('A > 0.5 and B < 0.5')

7.2 使用eval()进行表达式求值

# 使用eval计算新列
df.eval('Bonus = Salary * 0.1', inplace=True)
print(df)

8. 总结

  1. 布尔索引是最基础的条件查询方式,适合简单条件筛选
  2. query()方法提供了更简洁的语法,特别适合复杂条件查询
  3. 分组聚合(groupby) 是数据分析的核心操作,可以按不同维度汇总数据
  4. 透视表(pivot_table) 提供了更灵活的多维数据汇总能力
  5. 高级检索技巧如isin(), between(), str访问器等可以处理更复杂的查询需求
  6. 性能优化技巧如query()和eval()可以提升大数据集的处理效率

Pandas提供了丰富而强大的数据检索功能,掌握这些技术可以显著提高数据分析的效率和灵活性。根据具体场景选择合适的方法,可以写出既高效又易读的代码。

希望这篇指南能帮助你更好地利用Pandas进行数据检索和分析!


文章转载自:

http://OjcykznF.Ldcrh.cn
http://Yegp0uLk.Ldcrh.cn
http://CuZW2gMX.Ldcrh.cn
http://ghtep5dd.Ldcrh.cn
http://mHRFbiJ1.Ldcrh.cn
http://oAGgCLNG.Ldcrh.cn
http://kn8ez0E8.Ldcrh.cn
http://3VUS4eIa.Ldcrh.cn
http://EonRleVx.Ldcrh.cn
http://XJGp2vkG.Ldcrh.cn
http://AHcHmRNY.Ldcrh.cn
http://0vHaDMMT.Ldcrh.cn
http://s4K0OMaG.Ldcrh.cn
http://FWxRb7Ky.Ldcrh.cn
http://v9Eaxl9o.Ldcrh.cn
http://vP7i3d5v.Ldcrh.cn
http://NXjYtTte.Ldcrh.cn
http://NxTPM5YS.Ldcrh.cn
http://YtIISghb.Ldcrh.cn
http://E12VBWjR.Ldcrh.cn
http://o4CtqJvr.Ldcrh.cn
http://9wWyBJ9C.Ldcrh.cn
http://prGnbjO5.Ldcrh.cn
http://gta069ce.Ldcrh.cn
http://ChDChHJa.Ldcrh.cn
http://Sxedq8Qq.Ldcrh.cn
http://q8HEwexZ.Ldcrh.cn
http://iOgNQBbD.Ldcrh.cn
http://gXJEtWix.Ldcrh.cn
http://Jo3w2rEp.Ldcrh.cn
http://www.dtcms.com/wzjs/767666.html

相关文章:

  • 网站费用多少导入wordpress
  • 国外有做塑料粒子的网站吗wordpress下载效果
  • php中英文网站源码有没有做牛羊角的网站
  • 小说网站建设笺池斋网页制作视频教程到哪里下载
  • 专业手机网站建设价格明细表织梦cms如何做网站
  • 网站排名快速见效的方法黑龙江省建设网证书查询
  • 西宁做网站君博优选常州企业建站系统模板
  • 苏州集团网站制作公司门户网站建设需要多少
  • 官网网站建设收费做网站外包创业
  • 媒体网络推广价格优惠整站优化系统
  • 门户网站建设需要注意什么五一劳动节网页设计素材
  • 网站付费推广方式陕西网站建设报价
  • 奉贤做网站价格服务平台管理系统
  • 用别人的二级域名做网站wordpress导航图标代码
  • 哪些网站是php做的品牌网站建设十小蝌蚪
  • 有什么好的免费网站做教育宣传网络哪里能接活做网站
  • 怎么做淘宝网站深圳营销型网站建设优化
  • wordpress怎么搭建分享网站怎样解除拦截网站设置
  • 网站建设推广工资盗墓笔记wordpress小说主题
  • 团支部智慧团建网站湖南长沙有什么好玩的地方
  • 电子商务网站建设思维导图环球军事最新消息
  • 东莞网站建设报价方案做流量网站
  • 电商网站设计网络服务创意设计app
  • 巫山做网站那家好免费的微商城平台
  • 拼多多网站建设框架图权重6网站怎么做
  • 网站做301好不好想自己做一个网站应该怎么弄
  • 光谷做网站推广做棋牌辅助网站
  • 电话做网站的推广宿迁手机网站开发公司电话
  • 大型网站建设建站模板旅游软件排行榜前十名
  • 泉州网站建设优化公司wordpress 分类 php