基于TrialNumber与BlockNumber多条件筛选DataFrame的Stimulus值
Pandas DataFrame 多条件筛选解决方案
当然可以实现一行代码完成这个多条件筛选!Pandas提供了几种简洁的方式来满足你的需求,下面给你两种常用的写法:
方法一:使用loc布尔索引
这是Pandas最标准的筛选方式,逻辑清晰直观:
target_stimulus = plot_data.loc[(plot_data['TrialNumber'] == 99) & (plot_data['BlockNumber'] == 8), 'Stimulus'].values[0]
- 这里的
(plot_data['TrialNumber'] == 99) & (plot_data['BlockNumber'] == 8)是组合的布尔条件,注意每个条件都要加括号,并且用&表示逻辑与 loc方法的第一个参数是筛选的行条件,第二个参数指定要提取的列Stimulus.values[0]是将筛选得到的Series转换为单个值(对应你要的目标值34)
方法二:使用query方法(更贴近自然语言)
如果你偏爱更简洁的语法,可以用query方法,写法像日常描述一样:
target_stimulus = plot_data.query('TrialNumber == 99 and BlockNumber == 8')['Stimulus'].values[0]
这种方式不需要处理括号和逻辑运算符的格式,可读性拉满,适合快速编写筛选逻辑。
两种方法都能直接帮你拿到目标的Stimulus值,选你觉得顺手的用就好~
内容的提问来源于stack exchange,提问作者Vigor831
相关产品推荐
相关产品推荐

