Selecting rows based on a column value

Viewed 18402

I have a data frame something like this

data = {'ID': [1,2,3,4,5,6,7,8,9],
       'Doc':['Order','Order','Inv','Order','Order','Shp','Order', 'Order','Inv'],
       'Rep':[101,101,101,102,102,102,103,103,103]}
frame = pd.DataFrame(data)


    Doc     ID  Rep
0   Order   1   101
1   Order   2   101
2   Inv     3   101
3   Order   4   102
4   Order   5   102
5   Shp     6   102
6   Order   7   103
7   Order   8   103
8   Inv     9   103

Now I want to select rows for Rep that have Doc type as Inv only.

I want a dataframe as

    Doc     ID  Rep
0   Order   1   101
1   Order   2   101
2   Inv     3   101
6   Order   7   103
7   Order   8   103
8   Inv     9   103

All reps will have Doc type Orders so I was trying to do something like this

frame[frame.Rep == frame.Rep[frame.Doc == 'Inv']] 

but I get an error

ValueError: Can only compare identically-labeled Series objects

2 Answers
Related