📜  pandas 过滤列表中的行 - Python (1)

📅  最后修改于: 2023-12-03 15:33:24.950000             🧑  作者: Mango

Pandas 过滤列表中的行 - Python

在数据科学和数据分析中,用Pandas对数据进行过滤操作是一个十分常见的任务。在处理数据时,有时需要仅使用某些数据子集,Pandas提供了多种方法执行这些操作。本文将介绍一些在Python中使用Pandas过滤数据的方法。

筛选特定值

筛选特定值是最基本的过滤操作。在Pandas中,可以使用Boolean Indexing来查找数据子集。例如,对于一个包含数字、字符串和布尔型值的DataFrame,可以过滤出某个特定的字符串值的行。

import pandas as pd

# 创建一个包含数字、字符串和布尔型值的DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6],
                   'B': ['one', 'two', 'three', 'four', 'five', 'six'],
                   'C': [True, False, True, False, True, False]})

# 筛选出包含字符串值 'three' 的行
df_filtered = df[df['B'] == 'three']

print(df_filtered)

这将输出如下结果:

   A      B     C
2  3  three  True
筛选多个条件

有时,需要在数据集中使用多个条件进行过滤。在这种情况下,可以使用Bitwise Operators来组合不同的条件。例如,可以从数据集中过滤出“B”列中值为“three”且“A”列中值大于3的行。

import pandas as pd

# 创建一个包含数字、字符串和布尔型值的DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6],
                   'B': ['one', 'two', 'three', 'four', 'five', 'six'],
                   'C': [True, False, True, False, True, False]})

# 筛选出包含字符串值 'three' 和 A 列值大于 3 的行
df_filtered = df[(df['B'] == 'three') & (df['A'] > 3)]

print(df_filtered)

这将输出如下结果:

   A      B     C
3  4   four  False
筛选包含特定字符串的行

可以使用字符串方法来在Pandas中筛选包含特定字符串的行。例如,可以从数据集中过滤出包含“h”字母的“B”列的行。

import pandas as pd

# 创建一个包含数字、字符串和布尔型值的DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6],
                   'B': ['one', 'two', 'three', 'four', 'five', 'six'],
                   'C': [True, False, True, False, True, False]})

# 筛选出包含 'h' 字母的B列值的行
df_filtered = df[df['B'].str.contains('h')]

print(df_filtered)

这将输出如下结果:

   A      B     C
0  1    one  True
1  2    two  False
2  3  three  True

最后,Pandas提供了很多用于数据过滤和操作的方法。掌握这些技巧可以提高数据分析的效率并快速准确完成任务。