Acoplar varias columnas en un marco de datos a una sola columna

Tengo un marco de datos como este:

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

Quiero esto:

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

Puedo obtener mi salida deseada fácilmente así:

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)

Lo que me da esto:

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

Puedo escribir eso fácilmente en un archivo. Sin embargo, estoy luchando para hacer esto en los pandas nativos. Me imagino que esta aparente transposición sería más sencilla, pero estoy luchando ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta