Disons que j'ai le df suivant composé de x valeurs et de leurs probabilités commençant par x = 19 et se terminant par x = 64.
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
Ce que je voudrais faire est d'ajouter des lignes allant de x = 65 à x = 100 et que toutes leurs probabilités soient égales à 0, comme ceci:
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
Encore une fois, je voudrais simplement ajouter des valeurs x consécutives de 65 à 100 avec une probabilité de 0. Je ne sais pas trop comment ajouter des lignes comme celle-ci, donc toute aide est appréciée. Merci!
Remarque: Cette question est similaire à ajouter un nombre spécifique de lignes à dataframe (python) , mais je veux que mes valeurs dans la colonne x augmentent de 1 à chaque fois au lieu de rester les mêmes.
3 Réponses :
Nous pouvons faire reindex
df_new=df.set_index('x').reindex(np.arange(df.x.min(),100+1),method='ffill').reset_index()
Créez simplement un deuxième dataframe et ajoutez avec df.append()
votre dataframe peut être créé avec
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)
créez un second dataframe et ajoutez-le au premier comme
df = pd.DataFrame({'x':np.arange(19, 65)})
df['probability'] = 1
Vous pouvez utiliser une boucle for pour générer une liste et ajouter le dataframe avec 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)