¿Cómo establecer un valor de celda particular en pandas?

Estoy tratando de establecer un valor en el dataframe de panda.

ZEROS = np.zeros((4,4), dtype=np.int) df = pd.DataFrame(ZEROS, columns=['A1','B1','C1','D1']) df.at[2,3] = 32 df 

introduzca la descripción de la imagen aquí

No quiero NaN para toda la columna, el resultado esperado es el siguiente:

Usando numpy puedo establecer el valor como abajo

 ZEROS[1][3] = 44 

salida:

 array([[ 0, 0, 0, 0], [ 0, 0, 0, 44], [ 0, 0, 0, 0], [ 0, 0, 0, 0]]) 

Use pd.DataFrame.iat para hacer referencia y / o asignar a la ubicación ordinal de una sola celda.

 ZEROS = np.zeros((4,4), dtype=np.int) df = pd.DataFrame(ZEROS, columns=['A1','B1','C1','D1']) df.iat[2,3] = 32 df A1 B1 C1 D1 0 0 0 0 0 1 0 0 0 0 2 0 0 0 32 3 0 0 0 0 

También puede usar iloc , sin embargo, iloc también puede tomar matrices como entrada. Esto hace que iloc sea ​​más flexible pero también requiere más sobrecarga. Por lo tanto, si solo desea cambiar una celda … use iat


También vea este post para más información.

loc / iloc / at / iat / set_value

Utilice iloc :

 df.iloc[2,3] = 32 print(df) # A1 B1 C1 D1 #0 0 0 0 0 #1 0 0 0 0 #2 0 0 0 32 #3 0 0 0 0 

O si desea modificar por índice y nombre de columna, use loc :

 df.loc[2, 'D1'] = 32