Achatar várias colunas em um quadro de dados em uma única coluna

Eu tenho um quadro de dados como este:

id    other_id_1    other_id_2    other_id_3
1     100           101           102
2     200           201           202
3     300           301           302

Eu quero isso:

id    other_id
1     100
1     101
1     102
2     200
2     201
2     202
3     300
3     301
3     302

Posso obter facilmente a saída desejada assim:

to_keep = {}
for idx in df.index:
    identifier = df.loc[idx]['id']
    to_keep[identifier] = []
    for col in ['other_id_1', 'other_id_2', 'other_id_3']:
        row_val = df.loc[idx][col]
        to_keep[identifier].append(row_val)

O que me dá isso:

{1: [100, 101, 102], 2: [200, 201, 202], 3: [300, 301, 302]}

Eu posso escrever isso facilmente em um arquivo. No entanto, estou lutando para fazer isso em pandas nativos. Imagino que essa aparente transposição seria mais direta, mas estou lutando ...

questionAnswers(4)

yourAnswerToTheQuestion