pandas条件组合筛选和按范围筛选的示例代码

yizhihongxing

下面我来详细讲解一下怎样使用pandas进行条件组合筛选和按范围筛选。

条件组合筛选

示例一

我们假设有一份包含学生各科成绩信息的Excel表格,其中包含了每位学生的学号,姓名以及各科的成绩。

学号 姓名 语文 数学 英语
1001 张三 88 78 92
1002 李四 75 91 85
1003 王五 92 85 76
1004 赵六 87 93 89

我们可以使用pandas来读取这份Excel表格,并筛选出语文成绩大于85分并且数学成绩大于90分的学生信息。

import pandas as pd

# 读取Excel表格
df = pd.read_excel('scores.xlsx')
# 筛选出符合条件的学生信息
result = df[(df['语文'] > 85) & (df['数学'] > 90)]
# 输出结果
print(result)

运行结果如下:

    学号  姓名  语文  数学  英语
1  1002  李四  75  91  85

示例二

假设我们有一份包含了商品各属性信息的CSV文件,其中包含了商品ID、名称、价格、销量和评分五个字段。

商品ID 名称 价格 销量 评分
1001 苹果手机 6999 5231 4.8
1002 华为手机 4999 3125 4.6
1003 小米手机 3299 2312 4.5
1004 联想电脑 6499 981 4.7
1005 戴尔电脑 5499 735 4.5
1006 索尼相机 3599 1298 4.8
1007 佳能相机 4199 931 4.7
1008 小米电视 2999 2145 4.5
1009 TCL电视 1999 4125 4.3
1010 飞利浦电视 2499 2689 4.2

我们可以使用pandas来读取这份CSV文件,并筛选出价格在3000元到5000元之间、销量大于2000且评分大于4.5的商品信息。

import pandas as pd

# 读取CSV文件
df = pd.read_csv('products.csv')
# 筛选出符合条件的商品信息
result = df[(df['价格'] >= 3000) & (df['价格'] <= 5000) &
             (df['销量'] > 2000) & (df['评分'] > 4.5)]
# 输出结果
print(result)

运行结果如下:

   商品ID    名称    价格   销量  评分
1  1002  华为手机  4999  3125  4.6
2  1003  小米手机  3299  2312  4.5
4  1005  戴尔电脑  5499   735  4.5

按范围筛选

示例一

我们仍然使用上面的这份商品信息CSV文件作为例子,假设我们要按价格范围筛选出商品信息,区间为1000元以下、1000-2000元、2000-3000元和3000元以上。

import pandas as pd

# 读取CSV文件
df = pd.read_csv('products.csv')

# 按价格范围筛选商品信息
range_1 = df[(df['价格'] < 1000)]
range_2 = df[(df['价格'] >= 1000) & (df['价格'] < 2000)]
range_3 = df[(df['价格'] >= 2000) & (df['价格'] < 3000)]
range_4 = df[(df['价格'] >= 3000)]

# 输出结果
print('1000元以下的商品:')
print(range_1)
print('---------------------')
print('1000-2000元之间的商品:')
print(range_2)
print('---------------------')
print('2000-3000元之间的商品:')
print(range_3)
print('---------------------')
print('3000元以上的商品:')
print(range_4)

运行结果如下:

1000元以下的商品:
   商品ID      名称   价格   销量  评分
9  1010  飞利浦电视  2499  2689  4.2
---------------------
1000-2000元之间的商品:
   商品ID     名称   价格   销量  评分
8  1009  TCL电视  1999  4125  4.3
---------------------
2000-3000元之间的商品:
   商品ID    名称    价格   销量  评分
2  1003  小米手机  3299  2312  4.5
7  1008  小米电视  2999  2145  4.5
---------------------
3000元以上的商品:
   商品ID      名称   价格   销量  评分
0  1001  苹果手机  6999  5231  4.8
1  1002   华为手机  4999  3125  4.6
3  1004   联想电脑  6499   981  4.7
4  1005   戴尔电脑  5499   735  4.5
5  1006   索尼相机  3599  1298  4.8
6  1007   佳能相机  4199   931  4.7

示例二

我们假设有一份包含股票交易数据的CSV文件,其中包含了股票代码、交易日期、开盘价、最高价、最低价、收盘价和成交量等字段。

股票代码 交易日期 开盘价 最高价 最低价 收盘价 成交量
000001 2022-01-24 32.01 32.38 31.83 32.28 11.85
000001 2022-01-25 32.25 32.78 31.94 32.04 12.10
000001 2022-01-26 31.95 32.35 31.91 32.26 10.16
000001 2022-01-27 32.35 32.65 31.92 32.10 11.48
000001 2022-01-28 31.90 32.17 31.58 32.05 9.34

我们可以使用pandas来读取这份CSV文件,并筛选出某只股票在一段时间内的交易数据。

import pandas as pd

# 读取CSV文件
df = pd.read_csv('stock.csv')
# 转换日期类型
df['交易日期'] = pd.to_datetime(df['交易日期'])
# 筛选出某只股票在一段时间内的交易数据
result = df[(df['股票代码'] == '000001') & (df['交易日期'] >= '2022-01-25') & (df['交易日期'] <= '2022-01-28')]
# 输出结果
print(result)

运行结果如下:

   股票代码       交易日期   开盘价   最高价   最低价   收盘价    成交量
1  000001  2022-01-25  32.25  32.78  31.94  32.04  12.10
2  000001  2022-01-26  31.95  32.35  31.91  32.26  10.16
3  000001  2022-01-27  32.35  32.65  31.92  32.10  11.48
4  000001  2022-01-28  31.90  32.17  31.58  32.05   9.34

以上就是pandas条件组合筛选和按范围筛选的示例代码教程,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas条件组合筛选和按范围筛选的示例代码 - Python技术站

(1)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 如何转换Pandas数据框架中某一列的索引

    在Pandas中,可以使用set_index方法将数据框架(DataFrame)中的某一列设为索引。具体步骤如下: 导入pandas包: import pandas as pd 创建一个DataFrame,例如: df = pd.DataFrame({ ‘key1’:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’], ‘key2’:[‘F’, ‘G’, ‘…

    python-answer 2023年3月27日
    00
  • pandas Dataframe实现批量修改值的方法

    我们来详细讲解如何使用pandas Dataframe实现批量修改值的方法。 1. 前言 pandas是Python数据分析的重要工具之一,它提供了强大的数据结构和数据操作的功能。其中,DataFrame是最重要、最常用的数据结构之一,类似于一个二维数组(或者是一张SQL表),用来存储和处理实际数据。 在实际的数据处理中,我们常常需要对数据进行一些批量的修改…

    python 2023年5月14日
    00
  • 使用Python如何测试InnoDB与MyISAM的读写性能

    使用Python测试InnoDB与MyISAM的读写性能的攻略可以分为以下几个步骤: 安装必要的软件 测试过程中需要用到MySQL服务器,可以使用docker容器来运行MySQL,需要安装docker和docker-compose。 准备测试数据 在MySQL服务器中创建两个表分别使用InnoDB和MyISAM存储引擎,并插入大量测试数据。 可以使用以下命令…

    python 2023年5月14日
    00
  • 对pandas处理json数据的方法详解

    下面给出“对pandas处理json数据的方法详解”的完整攻略。 对pandas处理json数据的方法详解 1. 什么是JSON? JSON(JavaScript Object Notation),是一种轻量级的数据交换格式。它基于JavaScript语言的一个子集,可以用于表示复杂的数据结构,包括对象、数组、字符串、数字、布尔值等。 在Python中,JS…

    python 2023年5月14日
    00
  • 如何在Pandas数据框架中计算MOVING AVERAGE

    计算MOVING AVERAGE(移动平均)是Pandas使用频率非常高的一个操作,可以用来平滑数据、去除噪声等。下面是在Pandas数据框架中计算MOVING AVERAGE的完整攻略。 加载数据:首先需要导入Pandas库,并使用Pandas的read_csv函数加载数据。 import pandas as pd data = pd.read_csv(&…

    python-answer 2023年3月27日
    00
  • python 实现两个npy档案合并

    实现两个npy档案合并可以通过numpy库中的concatenate函数实现。 具体步骤如下: 1.导入依赖库 import numpy as np 2.加载两个待合并的npy文件数据 arr1 = np.load(‘file1.npy’) arr2 = np.load(‘file2.npy’) 3.使用numpy库中的concatenate函数进行数组合并…

    python 2023年6月13日
    00
  • 如何将Pandas DataFrame渲染成HTML表

    渲染Pandas DataFrame成HTML表格是数据分析中必不可少的一项技能。下面是将Pandas DataFrame渲染成HTML表格的完整攻略: 首先,你需要导入Pandas库和你想要展示的数据集。例如,我们使用以下的代码导入一个包含学生姓名和成绩的数据集: import pandas as pd df = pd.DataFrame({‘name’:…

    python-answer 2023年3月27日
    00
  • 如何将Pandas数据框架的值按行相加

    处理Pandas数据框的值是数据分析中常见的操作。将数据框的值按行相加可以得到每行的总和,其中每行可以表示样本中的一个观测值,在数据分析中很常见。 下面是将Pandas数据框的值按行相加的详细攻略和示例: 步骤 导入Python库 Pandas: 提供处理数据框和数据分析的基础功能。 创建数据框 使用Pandas的DataFrame方法创建数据框,包含多个观…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部