Grupo de Correlação de Pandas

Supondo que eu possua um quadro de dados semelhante ao abaixo, como obteria a correlação entre duas colunas específicas e depois o agruparia pela coluna 'ID'? Acredito que o método 'corr' do Pandas encontre a correlação entre todas as colunas. Se possível, também gostaria de saber como encontrar a correlação 'groupby' usando a função .agg (ou seja, np.correlate).

O que eu tenho:

ID  Val1    Val2    OtherData   OtherData
A   5   4   x   x
A   4   5   x   x
A   6   6   x   x
B   4   1   x   x
B   8   2   x   x
B   7   9   x   x
C   4   8   x   x
C   5   5   x   x
C   2   1   x   x

O que eu preciso:

ID  Correlation_Val1_Val2
A   0.12
B   0.22
C   0.05

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion