python - matplotlib
Anexando dos marcos de datos con las mismas columnas, orden diferente (3)
Para futuros usuarios (en algún momento > pandas 0.23.0 ):
Es posible que también deba agregar sort = True para ordenar el eje de no concatenación cuando aún no esté alineado (es decir, para mantener el comportamiento de concatenación deseado del OP). Utilicé el código contribuido anteriormente y obtuve una advertencia, vea Advertencia de usuario de Python Pandas . El siguiente código funciona y no lanza una advertencia.
In [36]: pd.concat([noclickDF, clickDF], ignore_index=True, sort=True)
Out[36]:
click id location
0 0 123 321
1 0 1543 432
2 1 421 123
3 1 436 1543
Tengo dos marcos de datos de los pandas.
noclickDF = DataFrame([[0,123,321],[0,1543,432]], columns=[''click'', ''id'',''location''])
clickDF = DataFrame([[1,123,421],[1,1543,436]], columns=[''click'', ''location'',''id''])
Simplemente quiero unirme para que el DF final se vea como:
click | id | location
0 123 321
0 1543 432
1 421 123
1 436 1543
Como puede ver, los nombres de columna de ambos DF originales son los mismos, pero no en el mismo orden. Tampoco hay una unión en una columna.
Puedes usar el apéndice para eso
df = noclickDF.append(clickDF)
print df
click id location
0 0 123 321
1 0 1543 432
0 1 421 123
1 1 436 1543
y si lo necesitas puedes restablecer el índice
df.reset_index(drop=True)
print df
click id location
0 0 123 321
1 0 1543 432
2 1 421 123
3 1 436 1543
También pd.concat usar pd.concat :
In [36]: pd.concat([noclickDF, clickDF], ignore_index=True)
Out[36]:
click id location
0 0 123 321
1 0 1543 432
2 1 421 123
3 1 436 1543
Bajo el capó, DataFrame.append
llama a pd.concat
. DataFrame.append
tiene código para manejar varios tipos de entrada, como series, tuplas, listas y dictados. Si le pasas un DataFrame, pasa directamente a pd.concat
, por lo que usar pd.concat
es un poco más directo.