Digamos que tengo el siguiente df que consta de valores de x y sus probabilidades que comienzan con x = 19 y terminan con x = 64.


      x    probability
0   19.0    1.000000
1   20.0    1.000000
2   21.0    1.000000
3   22.0    1.000000
...
40  60.0    0.000000
41  62.0    0.500000
42  63.0    1.000000
43  64.0    0.000000

Lo que me gustaría hacer es agregar filas que van desde x = 65 a x = 100 y que todas sus probabilidades sean iguales a 0, así:


      x     probability
0   19.0     1.000000
1   20.0     1.000000
2   21.0     1.000000
3   22.0     1.000000
4   23.0     1.000000
...
43  64.0     0.000000
44  65.0     0.000000
43  66.0     0.000000
44  67.0     0.000000
...
73  97.0     0.000000
78  98.0     0.000000
79  99.0     0.000000
80  100.0    0.000000

Nuevamente, simplemente me gustaría agregar valores x consecutivos de 65 a 100 con una probabilidad de 0. No estoy muy seguro de cómo agregar filas como esta, por lo que se agradece cualquier ayuda. ¡Gracias!

Nota: Esta pregunta es similar a agrega un número específico de filas al marco de datos (python ), pero quiero que mis valores en la columna x aumenten en 1 cada vez en lugar de permanecer igual.

1
bismo 15 jun. 2020 a las 21:10

3 respuestas

La mejor respuesta

Nosotras podemos hacer {{x0}}

df_new=df.set_index('x').reindex(np.arange(df.x.min(),100+1),method='ffill').reset_index()
1
YOBEN_S 15 jun. 2020 a las 18:14

Simplemente cree un segundo marco de datos y agregue con df.append()

Su marco de datos se puede crear con

df = pd.DataFrame({'x':np.arange(19, 65)})
df['probability'] = 1

Cree un segundo marco de datos y añádalo al primero como

max_x = df['x'].max()
df_append = pd.DataFrame({'x':np.arange(max_x, 101)})
df_append['probability'] = 0

df_res = df.append(df_append)
3
jonerei 15 jun. 2020 a las 18:23

Puede usar un bucle for para generar una lista y agregar el marco de datos con df.append(...)

x = []
probabilities = []
for i in range(65,101):
  x.append(i)
  probabilities.append(0)
new_df = pd.DataFrame({'x':x,'probabilites':probabilities})

df.append(new_df, ignore_index=True)
0
Md. Mushfiqur Rahman 15 jun. 2020 a las 18:35