tablas - Python Pandas fusionan solo ciertas columnas
seleccionar columnas en pandas (4)
Desea utilizar DOS corchetes, por lo que si está realizando una acción VLOOKUP:
df = pd.merge(df,df2[[''Key_Column'',''Target_Column'']],on=''Key_Column'', how=''left'')
Esto le dará todo en el df original y agregará esa columna correspondiente en df2 a la que desea unirse.
¿Es posible fusionar solo algunas columnas? Tengo un DataFrame df1 con columnas x, y, z y df2 con columnas x, a, b, c, d, e, f, etc.
Quiero fusionar los dos DataFrames en x, pero solo quiero fusionar las columnas df2.a, df2.b, no todo el DataFrame.
El resultado sería un DataFrame con x, y, z, a, b.
Podría fusionar y luego eliminar las columnas no deseadas, pero parece que hay un método mejor.
Esto es para fusionar columnas seleccionadas de dos tablas.
Si table_1 contiene t1_a,t1_b,t1_c..,id,..t1_z
columnas y table_2 contiene t2_a,t2_b,t2_c...,id,..t2_z
columnas, y solo t1_a, id, t2_a son obligatorios en la tabla final , entonces
mergedCSV = table_1[[''t1_a'',''id'']].merge(table_2[[''t2_a'',''id'']], on = ''id'',how = ''left'')
#save resulting output file
mergedCSV.to_csv(''output.csv'',index = False)
Podría fusionar el Sub-DataFrame (con solo esas columnas):
df2[list(''xab'')] # df2 but only with columns x, a, and b
df1.merge(df2[list(''xab'')])
Puede usar .loc
para seleccionar las columnas específicas con todas las filas y luego extraerlas. Un ejemplo es a continuación:
pandas.merge(dataframe1, dataframe2.iloc[:, [0:5]], how=''left'', on=''key'')
En este ejemplo, está fusionando dataframe1 y dataframe2. Has elegido hacer una combinación externa izquierda en ''clave''. Sin embargo, para dataframe2 ha especificado .iloc
que le permite especificar las filas y columnas que desea en un formato numérico. Usando :
seleccionando todas las filas, pero [0:5]
selecciona las primeras 5 columnas. Puede usar .loc
para especificar por nombre, pero si trabaja con nombres largos de columna, entonces .iloc
puede ser mejor.