Ни один из встроенных аксессоров не будет делать то, что вы хотите. Вы можете создать свой собственный аксессор и обезьяны-патчить его:
def get(df, **kwargs):
cond = [True] * df.shape[0]
for col, value in kwargs.items():
cond &= df[col] == value
result = df[cond]
if result.shape[0] > 1:
raise ValueError('Key must be unique')
return result.iloc[0]
pd.DataFrame.get = get
# Usage
df.get(col1=..., col2=..., col3=...)
Однако это относительно медленно, поэтому не вызывайте его в узком цикле.