J'ai un pandas géants dataframe comme:Pandas/Numpy: moyen le plus rapide de créer une échelle?
color cost temp
0 blue 12.0 80.4
1 red 8.1 81.2
2 pink 24.5 83.5
et je veux créer une « échelle » ou une « fourchette » des coûts pour chaque ligne à 50 incréments de cent, de 0,50 $ en dessous du coût actuel à 0,50 $ au-dessus du coût actuel. Mon code actuel est similaire à la suivante:
incremented_prices = []
df['original_idx'] = df.index # To know it's original label
for row in df.iterrows():
current_price = row['cost']
more_costs = numpy.arange(current_price-1, current_price+1, step=0.5)
for cost in more_costs:
row_c = row.copy()
row_c['cost'] = cost
incremented_prices.append(row_c)
df_incremented = pandas.concat(incremented_prices)
Et ce code produira une trame de données comme:
color cost temp original_idx
0 blue 11.5 80.4 0
1 blue 12.0 80.4 0
2 blue 12.5 80.4 0
3 red 7.6 81.2 1
4 red 8.1 81.2 1
5 red 8.6 81.2 1
6 pink 24.0 83.5 2
7 pink 24.5 83.5 2
8 pink 25.0 83.5 2
Dans le vrai problème, je vais faire va de - 50,00 $ à 50,00 $ et je trouve cela vraiment lent, y at-il un moyen plus rapide vectorisé?
Vous pouvez également reformuler la question comme suit: comment créer un DF qui a répété N fois chaque ligne de mon DF original? Ensuite, [cette question] (http://stackoverflow.com/q/23887881/1258041) peut être utile. –
@Lev Cela ferait partie de cela, mais pour chaque ligne, j'ai besoin d'un prix différent qui est basé sur le prix d'origine +/- un certain montant. – user1367204