加筆修正していきます。
最近Pandas使ってませんが・・・
Seriesから値を取り出す
column1がfooに一致したcolumn2の値を取り出す。
df.query("column1 = 'foo'")["column2"].item()
GroupByして上位n件を抽出
column1に対してGroubByし、column2の値が上位n件であるレコードのみ抽出する。
sorted_df = df.sort_values(by="column2", ascending=False) # 降順
groupby_df = sorted_df.groupby("column1").head(n)