Tengo un marco de datos existente al que necesito agregar una columna adicional que contendrá el mismo valor para cada fila.
Df existente:
Date, Open, High, Low, Close
01-01-2015, 565, 600, 400, 450
Nuevo df:
Name, Date, Open, High, Low, Close
abc, 01-01-2015, 565, 600, 400, 450
Sé cómo agregar una columna de serie / marco de datos existente. Pero esta es una situación diferente, porque todo lo que necesito es agregar la columna 'Nombre' y establecer cada fila en el mismo valor, en este caso 'abc'.
.copy()
, antes de usar esto (a menos que sea enorme o algo o el rendimiento realmente cuente).Puede usar
insert
para especificar dónde desea que esté la nueva columna. En este caso, uso0
para colocar la nueva columna a la izquierda.fuente
df.insert(0,'coef_fix',1)
. Estoy usando JupyterLab con Python 3.0insert
funcionainplace
. Esto significa que el valor del nuevo marco de datos no se devuelve pero el marco de datos original se ha modificado. Prueba estodf = pd.DataFrame(0, range(1460), range(41)); df.insert(0, 'coef_fix', 1); df
El revestimiento simple funciona
Crea una
Name
columna y establece todas las filas enabc
valorfuente
Resumiendo lo que los demás han sugerido y agregando una tercera vía
Usted puede:
asignar (** kwargs) :
acceder a la nueva serie de columnas (se creará) y configurarla:
insert (loc, columna, valor, allow_duplicates = False)
donde el argumento loc (0 <= loc <= len (columnas)) le permite insertar la columna donde desee.
'loc' le proporciona el índice en el que estará su columna después de la inserción. Por ejemplo, el código anterior inserta el Nombre de la columna como la columna 0, es decir, se insertará antes de la primera columna, convirtiéndose en la nueva primera columna. (La indexación comienza desde 0).
Todos estos métodos le permiten agregar una nueva columna de una Serie también (simplemente sustituya el argumento predeterminado 'abc' anterior con la serie).
fuente