欢迎访问宙启技术站
智能推送

在pandas.DataFrame中的数据筛选和过滤方法有哪些

发布时间:2023-12-17 14:52:41

在pandas中,我们可以使用不同的方法来筛选和过滤DataFrame中的数据。下面是一些常用方法的示例,用于帮助您理解如何使用它们:

1. 筛选行(根据条件)

- 使用布尔索引:可以使用布尔条件来过滤DataFrame中的行。例如,要筛选年龄大于25岁的人员:

     df[df['age'] > 25]
     

- 使用isin()函数:可以使用isin()函数来选择指定值的行。例如,要筛选名字为Alice或Bob的人员:

     df[df['name'].isin(['Alice', 'Bob'])]
     

2. 筛选列

- 使用列名称:可以通过指定要选择的列名称列表来选择特定的列。例如,要选择名字和年龄列:

     df[['name', 'age']]
     

- 使用filter()函数:可以使用filter()函数根据列名称或正则表达式来选择列。例如,要选择以"age"开头的所有列:

     df.filter(regex='^age')
     

3. 根据索引筛选

- 使用loc[]函数:可以使用loc[]函数根据索引标签来选择行。例如,要选择索引标签为0、1和2的行:

     df.loc[[0, 1, 2]]
     

- 使用iloc[]函数:可以使用iloc[]函数根据整数位置来选择行。例如,要选择前三行:

     df.iloc[:3]
     

4. 根据值筛选

- 使用query()函数:可以使用query()函数根据条件字符串来选择行。例如,要选择年龄大于25岁的行:

     df.query('age > 25')
     

- 使用where()函数:可以使用where()函数根据条件来选择行,将不满足条件的行替换为NaN。例如,要选择年龄大于25岁的行:

     df.where(df['age'] > 25)
     

5. 组合筛选

- 使用多个条件:可以使用多个条件组合进行筛选。例如,要选择年龄大于25岁且工资小于5000的行:

     df[(df['age'] > 25) & (df['salary'] < 5000)]
     

- 使用任意条件:可以使用任意条件进行筛选。例如,要选择年龄大于25岁或工资小于5000的行:

     df[(df['age'] > 25) | (df['salary'] < 5000)]
     

这些只是pandas中可用的一些筛选和过滤方法的示例。根据具体的需求,还有其他方法可用于进一步过滤和筛选数据。