grupo de pandas onde você obtém o máximo de uma coluna e o mínimo de outra coluna

Eu tenho um quadro de dados da seguinte maneira:

user    num1    num2
a       1       1
a       2       2
a       3       3
b       4       4
b       5       5

Eu quero um quadro de dados que tenha o mínimo de num1 para cada usuário e o máximo de num2 para cada usuário.

A saída deve ser como:

user    num1    num2
a       1       3
b       4       5

Eu sei que se eu quisesse o máximo de ambas as colunas, eu poderia fazer:

a.groupby('user')['num1', 'num2'].max()

Existe algum equivalente sem ter que fazer algo como:

series_1 = a.groupby('user')['num1'].min() 
series_2 = a.groupby('user')['num2'].max()

# converting from series to df so I can do a join on user
df_1 = pd.DataFrame(np.array([series_1]).transpose(), index=series_1.index, columns=['num1']) 
df_2 = pd.DataFrame(np.array([series_2]).transpose(), index=series_2.index, columns=['num2'])

df_1.join(df_2)

questionAnswers(1)

yourAnswerToTheQuestion