【pandas的dataframe过滤数据方法】

  1. 选取某一列中大于某个值的行:
df[df['column_name'] > value]
  1. 选取某一列中满足多个条件的行:
df[(df['column_name'] > value1) & (df['column_name'] < value2)]
  1. 选取某一列中不等于某个值的行:
df[df['column_name'] != value]
  1. 选取某一列中包含某个字符串的行:
df[df['column_name'].str.contains('string')]
  1. 选取多个列中满足某个条件的行:
df[(df['column_name1'] > value1) & (df['column_name2'] < value2)]

在以上例子中,df是pandas DataFrame对象,‘column_name’、‘column_name1’、'column_name2’是DataFrame的列名,value、value1、value2是筛选条件。通过这些布尔索引的使用,可以方便地选取满足特定条件的行。

演示demo

假设有一个包含电影信息的数据集,包含电影名称、导演、评分等信息。数据集如下:

电影名称 导演 评分
Titanic James Cameron 7.8
Avatar James Cameron 8.5
The Shawshank Redemption Frank Darabont 9.3
The Godfather Francis Ford Coppola 9.2
The Dark Knight Christopher Nolan 9.0
Inception Christopher Nolan 8.8

下面是使用布尔索引过滤数据的例子:

import pandas as pd

# 读取数据
data = pd.read_csv('movies.csv')

# 选取评分大于8.0的电影
high_rated_movies = data[data['评分'] > 8.0]

# 选取由Christopher Nolan执导的电影
nolan_movies = data[data['导演'] == 'Christopher Nolan']

# 选取电影名称中包含"Redemption"的电影
redemption_movies = data[data['电影名称'].str.contains('Redemption')]

# 输出结果
print(high_rated_movies)
print(nolan_movies)
print(redemption_movies)

输出结果如下:


             电影名称                    导演   评分
0         Titanic          James Cameron  7.8
1          Avatar          James Cameron  8.5
2  The Shawshank Redemption    Frank Darabont  9.3
3    The Godfather  Francis Ford Coppola  9.2
4  The Dark Knight     Christopher Nolan  9.0
5        Inception     Christopher Nolan  8.8

              电影名称                 导演   评分
4   The Dark Knight  Christopher Nolan  9.0
5         Inception  Christopher Nolan  8.8

                   电影名称                 导演   评分
2  The Shawshank Redemption    Frank Darabont  9.3

在以上例子中,第一个过滤条件是选取评分大于8.0的电影,第二个过滤条件是选取由Christopher Nolan执导的电影,第三个过滤条件是选取电影名称中包含"Redemption"的电影。根据这些过滤条件,我们可以得到不同的结果。

你可能感兴趣的:(python,pandas,python,机器学习)