extract column value based on another column pandas dataframe

I am kind of getting stuck on extracting value of one variable conditioning on another variable. For example, the following dataframe:

    A  B
    p1 1
    p1 2
    p3 3
    p2 4

How can I get the value of A when B=3? Every time when I extracted the value of A, I got an object, not a string.

You could use loc to get series which satisfying your condition and then iloc to get first element:

    In [2]: df
    Out[2]:
        A  B
    0  p1  1
    1  p1  2
    2  p3  3
    3  p2  4

    In [3]: df.loc[df['B'] == 3, 'A']
    Out[3]:
    2    p3
    Name: A, dtype: object

    In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
    Out[4]: 'p3'

From: stackoverflow.com/q/36684013