pandas条件组合筛选和按范围筛选

1、从记录中选出所有fault_code列的值在fault_list= [487, 479, 500, 505]这个范围内的记录

record2=record[record['FAULT_CODE'].isin(fault_list)]

要用.isin 而不能用in,用 in以后选出来的值都是True 和False,然后报错:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any()

2、选出所有WTGS_CODE=20004013的记录

  set=20004013

record= record[record['WTGS_CODE'] == set]

 

3、其次,从记录中选出所有满足set条件且fault_code列的值在fault_list= [487, 479, 500, 505]这个范围内的记录

record_this_month=record[(record['WTGS_CODE']==set)&(record['FAULT_CODE'].isin(fault_list))]

(1)多个条件筛选的时候每个条件都必须加括号。

(2)判断值是否在某一个范围内进行筛选的时候需要使用DataFrame.isin()的isin()函数,而不能使用in。

  • 17
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Pandas 是 Python 中非常流行的数据分析库,它提供了许多强大的数据处理和分析工具,包括数据筛选功能。下面是一些 Pandas 筛选数据的方法。 假设我们有一个名为 `df` 的 Pandas DataFrame,其中包含以下数据: ``` python import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'], 'Age': [25, 30, 35, 40, 45], 'Gender': ['F', 'M', 'M', 'M', 'F'], 'Salary': [5000, 6000, 7000, 8000, 9000]} df = pd.DataFrame(data) ``` 接下来,我们将演示如何根据不同条件筛选数据。 #### 1. 按列筛选 我们可以使用 DataFrame 的列名来选择特定列。例如,要选择 `Name` 和 `Age` 列,可以使用以下方法: ``` python df[['Name', 'Age']] ``` #### 2. 按行筛选 我们可以使用 DataFrame 的 `iloc` 属性按行索引来选择特定行。例如,要选择前两行,可以使用以下方法: ``` python df.iloc[:2] ``` 我们也可以使用 `loc` 属性按标签索引来选择特定行。例如,要选择 `Name` 列中包含 `'a'` 的行,可以使用以下方法: ``` python df.loc[df['Name'].str.contains('a')] ``` #### 3. 按条件筛选 我们可以使用布尔表达式来选择符合特定条件的行。例如,要选择 `Salary` 列中大于 `6000` 的行,可以使用以下方法: ``` python df[df['Salary'] > 6000] ``` 我们也可以使用多个条件组合进行筛选。例如,要选择 `Gender` 列为 `'M'` 且 `Salary` 列大于 `6000` 的行,可以使用以下方法: ``` python df[(df['Gender'] == 'M') & (df['Salary'] > 6000)] ``` 这些是 Pandas 筛选数据的基本方法,你可以根据需要进行组合使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值