python - columns - pandas concat
Pandas column bind(cbind) dos cuadros de datos (1)
Tengo un df_a de df_a
con información de identificación:
unique_id lacet_number
15 5570613 TLA-0138365
24 5025490 EMP-0138757
36 4354431 DXN-0025343
y otra trama de datos df_b
, con el mismo número de filas que sé que corresponden a las filas en df_a
:
latitude longitude
0 -93.193560 31.217029
1 -93.948082 35.360874
2 -103.131508 37.787609
Lo que quiero hacer es simplemente enlazar los dos y obtener:
unique_id lacet_number latitude longitude
0 5570613 TLA-0138365 -93.193560 31.217029
1 5025490 EMP-0138757 -93.948082 35.360874
2 4354431 DXN-0025343 -103.131508 37.787609
Lo que he intentado:
df_c = pd.concat([df_a, df_b], axis=1)
lo que me da una unión externa.
unique_id lacet_number latitude longitude
0 NaN NaN -93.193560 31.217029
1 NaN NaN -93.948082 35.360874
2 NaN NaN -103.131508 37.787609
15 5570613 TLA-0138365 NaN NaN
24 5025490 EMP-0138757 NaN NaN
36 4354431 DXN-0025343 NaN NaN
El problema es que los índices de los dos marcos de datos no coinciden. Leí la documentación para pandas.concat y vi que hay una opción "ignore_index". Pero eso solo se aplica al eje de concatenación, en mi caso las columnas y ciertamente no es la opción correcta para mí. Entonces mi pregunta es: ¿hay una manera simple de lograr esto?
Si está seguro de que los valores de la fila del índice son los mismos, para evitar el orden de alineación del índice, simplemente llame a reset_index()
, esto restablecerá los valores de su índice para comenzar desde 0
:
df_c = pd.concat([df_a.reset_index(drop=True), df_b], axis=1)