pythonpandasdataframe

Extract column value based on another column in Pandas


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.


Solution

  • 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'