【数据分析面试】3.编写数据选取函数(Python)

该文章介绍了如何使用Python的Pandas库编写grades_colors函数,选择学生数据表中喜欢绿色或红色且成绩高于90分的学生行。函数通过`isin()`方法筛选颜色,结合条件操作符筛选成绩。
摘要由CSDN通过智能技术生成

在这里插入图片描述

题目

给定了一个名为 students_df 的学生数据表格

nameagefavorite_colorgrade
Tim Voss19red91
Nicole Johnson20yellow95
Elsa Williams21green82
John James20blue75
Catherine Jones23green93

编写一个名为 grades_colors 的函数,以选择仅当学生喜欢的颜色是绿色或红色且他们的成绩高于90时的行。

示例:

输入:

import pandas as pd

students = {"name" : ["Tim Voss", "Nicole Johnson", "Elsa Williams", "John James", "Catherine Jones"], "age" : [19, 20, 21, 20, 23], "favorite_color" : ["red", "yellow", "green", "blue", "green"], "grade" : [91, 95, 82, 75, 93]}

students_df = pd.DataFrame(students)

输出:

def grades_colors(students_df) ->
nameagefavorite_colorgrade
Tim Voss19red91
Catherine Jones23green93

答案

答案代码

首先使用 isin() 方法选择喜欢的颜色为绿色或红色的行,然后使用条件筛选出成绩大于90的行,最后返回满足条件的结果。

def grades_colors(students_df):
    # 选择喜欢的颜色为绿色或红色,且成绩大于90的行
    result_df = students_df[(students_df['favorite_color'].isin(['green', 'red'])) & (students_df['grade'] > 90)]
    return result_df

Python代码 —— 选取特定值

# 多条件选取
new_df = df[
    (df['country'].isin(['Australia', 'New Zealand'])) &
    (df['points'] >= 95)
]

# 使用 loc
new_df = df.loc[
    (df['country'].isin(['Australia', 'New Zealand'])) &
    (df['points'] >= 95)
]

# 同一列不同值:年份为87、88、99年
df[(df['Year'] == 1987) |
   (df['Year'] == 1988) |
   (df['Year'] == 1999)]

# 在两个连续值之间:1987-1988年之间
df[df['Year'].isin([1987, 1988])]

# 根据特定条件,选择指定列的内容:87年,Size为High的数据中,I、M、Y、O四列
select_columns = ['I', 'M', 'Y', 'O']
df[(df['Year'] == 1987) &
   (df['Size'] == 'High')][select_columns]

# 使用 loc,选择指定列的内容
df.loc[(df['Year'] == 1987) &
       (df['Outlet_Size'] == 'High'), select_columns]

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值