当前位置: 代码网 > it编程>前端脚本>Python > Python的Pandas库中使用DataFrame筛选和删除含特定值的行与列

Python的Pandas库中使用DataFrame筛选和删除含特定值的行与列

2024年06月13日 Python 我要评论
一、基础知识回顾在开始之前,让我们先回顾一下pandas dataframe的基础知识。dataframe是pandas中的一个核心数据结构,它可以看作是一个表格,拥有行和列,可以存储不同类型的数据。

一、基础知识回顾 

在开始之前,让我们先回顾一下pandas dataframe的基础知识。dataframe是pandas中的一个核心数据结构,它可以看作是一个表格,拥有行和列,可以存储不同类型的数据。示例如下:

import pandas as pd

# 创建一个简单的dataframe
data = {
    'name': ['alice', 'bob', 'charlie', 'david'],
    'age': [25, 30, 35, 40],
    'city': ['new york', 'los angeles', 'chicago', 'houston']
}

df = pd.dataframe(data)
print(df)

输出:     

name  age         city
0    alice   25     new york
1      bob   30  los angeles
2  charlie   35      chicago
3    david   40      houston

二、筛选含有特定值的行 

在pandas中,我们可以使用布尔索引来筛选含有特定值的行。布尔索引就是根据每个元素是否满足某个条件(返回true或false)来筛选数据。

# 筛选年龄大于30的行
df_filtered = df[df['age'] > 30]
print(df_filtered)

上面的代码会筛选出年龄大于30的行,并返回一个新的dataframe:     

name  age     city
2  charlie   35  chicago
3    david   40  houston

三、删除含有特定值的行 

如果我们想从原始dataframe中删除满足某个条件的行,可以使用drop方法。

# 删除年龄大于30的行
df_dropped = df.drop(df[df['age'] > 30].index)
print(df[df['age'] > 30].index)
print("*"*30)
print(df_dropped)

上面的代码会删除年龄大于30的行,并返回一个新的dataframe:

index([2, 3], dtype='int64')
******************************
    name  age         city
0  alice   25     new york
1    bob   30  los angeles

四、筛选含有特定值的列 

同样地,我们也可以筛选含有特定值的列。

# 筛选城市为"chicago"的列
df_filtered_columns = df[df['city'] == 'chicago']
print(df['city'] == 'chicago')
print("*"*30)
print(df_filtered_columns)

上面的代码会筛选出城市为"chicago"的列,并返回一个新的dataframe:

0    false
1    false
2     true
3    false
name: city, dtype: bool
******************************
      name  age     city
2  charlie   35  chicago

五、删除含有特定值的列 

要删除含有特定值的列,我们可以使用drop方法,并指定columns参数。

# 删除城市为"chicago"的列
df_dropped_columns = df.drop(columns=['city'])
print(df_dropped_columns)

上面的代码会删除城市列,并返回一个新的dataframe:

      name  age
0    alice   25
1      bob   30
2  charlie   35
3    david   40

注意:筛选和删除操作默认返回的是一个新的dataframe,不会改变原始的dataframe。

六、实战演练 

假设我们有一个包含学生信息的dataframe,我们要筛选出年龄大于15且城市为"new york"的学生。

import pandas as pd

# 创建一个包含学生信息的dataframe
student_data = {
    'name': ['alice', 'bob', 'charlie', 'david', 'eve', 'frank'],
    'age': [22, 25, 18, 28, 21, 27],
    'city': ['new york', 'los angeles', 'chicago', 'houston', 'new york', 'san francisco']
}

student_df = pd.dataframe(student_data)
print("原始dataframe:")
print(student_df)

# 筛选年龄大于1且5城市为"new york"的学生
filtered_students = student_df[(student_df['age'] > 15) & (student_df['city'] == 'new york')]
print("\n筛选后的dataframe:")
print(filtered_students)

上面的代码会筛选出年龄大于15且城市为"new york"的学生,并打印出筛选后的dataframe:

原始dataframe:
      name  age           city
0    alice   22       new york
1      bob   25    los angeles
2  charlie   18        chicago
3    david   28        houston
4      eve   21       new york
5    frank   27  san francisco

筛选后的dataframe:
    name  age      city
0  alice   22  new york
4    eve   21  new york

七、最后 

到此这篇关于python的pandas库中使用dataframe筛选和删除含特定值的行与列的文章就介绍到这了,更多相关dataframe筛选和删除特定值行与列内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com