基于多个条件子选择DataFrame

时间:2020-01-19 15:17:43

标签: python pandas dataframe indexing

我有一个小的DataFrame对象(plot_data,800个值),该对象包含以下列:

  • Stimulus(每个单元格上的随机数)
  • TrialNumber(序列0-99,重复8次)
  • BlockNumber(对于每个TrialNumber序列0-99,有第1块,然后是2块,然后是3块直到8)

示例

Stimulus  TrialNumber BlockNumber
      45           1            1
      72           2            1
      12           3            1
     ...         ...          ...
      34          99            8

我想基于两个条件从Stimulus中选择一个值,TrialNumber的值和BlockNumber的值。 到目前为止,我只为位置索引选择了Stimulus值:

plot_data['Stimulus'][1]),其中1是索引

是否可以使用相同的代码行根据Stimulus的索引和TrialNumber的索引来选择BlockNumber

例如,如果我想为Stimulus 99和TrialNumber 9(在此示例中为34)中分别选择BlockNumber,我该怎么做?

1 个答案:

答案 0 :(得分:2)

我像上面的df一样创建了一个示例数据框

data = {'Stimulus': [45, 72, 12, 34],
        'TrialNumber': [1, 2, 3, 99],
        'BlockNumber': [1, 1, 1, 8]}

如果要基于多个条件选择列值,可以选择以下内容:

df.loc[(df['TrialNumber'] == 99) &
              (df['BlockNumber'] == 8)]['Stimulus'].values[0]

这将为您提供刺激值 34