You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据指定Student值从DataFrame生成对应的Selected_Food变量?

根据指定Student值获取对应food列值的解决方案

问题背景

现有包含Student和food列的DataFrame,需根据任意指定的Student值,提取对应的food值赋值给Selected_Food变量。原代码仅支持Student=1,无法适配其他值。

DataFrame生成代码:

import pandas as pd

data={'Student':[1,2,3,4],'food':['R0100000', 'R0200000', 'R0300000', 'R0400000']}
df=pd.DataFrame(data)

原代码问题分析

原代码通过固定行索引0取值,仅当Student=1恰好位于第0行时生效,无法适配其他Student值:

if(df.Student==1):
    Selected_food=df.loc[0,"food"]

可行解决方案

方案1:布尔索引过滤取值

通过布尔条件筛选目标行,再提取对应food值:

# 指定目标Student值
target_student = 3
# 筛选对应行并提取food值
selected_food = df[df['Student'] == target_student]['food'].values[0]

说明:若Student值唯一,.values[0]可确保取出唯一匹配的结果。

方案2:使用loc结合条件查询

直接通过loc同时指定行条件和列名:

target_student = 2
selected_food = df.loc[df['Student'] == target_student, 'food'].iloc[0]

说明:loc返回符合条件的行,iloc[0]取出第一行(唯一行)的food值。

方案3:设置Student为索引(适合频繁查询)

若需多次查询,将Student设为索引可提升效率:

# 将Student列设为索引(仅需执行一次)
df.set_index('Student', inplace=True)

# 指定目标Student值并查询
target_student = 4
selected_food = df.loc[target_student, 'food']

说明:设置索引后,可直接通过索引值快速定位对应行的food值。

注意事项

确保Student列的值唯一,否则上述方法会返回多个结果,需根据需求处理(如取第一个值或抛出异常)。

内容的提问来源于stack exchange,提问作者Aragorn64

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:45:46