0

I have a dataframe of cars. I have its car price column and I want to create a new column carsrange that would have values like 'high','low' etc according to car price. Like for example :

if price is between 0 and 9000 then cars range should have 'low' for those cars. similarly, if price is between 9000 and 30,000 carsrange should have 'medium' for those cars etc. I tried doing it, but my code is replacing one value to the other. Any help please?

I ran a for loop in the price column, and use the if-else iterations to define my column values.

for i in cars_data['price']:
    if (i>0 and i<9000): cars_data['carsrange']='Low'
    elif (i<9000 and i<18000): cars_data['carsrange']='Medium-Low'
    elif (i<18000 and i>27000): cars_data['carsrange']='Medium'
    elif(i>27000 and i<36000): cars_data['carsrange']='High-Medium'
    else : cars_data['carsrange']='High'

Now, When I run the unique function for carsrange, it shows only 'High'. cars_data['carsrange'].unique()

This is the Output:

In[74]:cars_data['carsrange'].unique() Out[74]: array(['High'], dtype=object)

I believe I have applied the wrong concept here. Any ideas as to what I should do now?

yash jain
  • 3
  • 2
  • 3

1 Answers1

0

you can use list:

resultList = []
for i in cars_data['price']:
    if (i>0 and i<9000): 
        resultList.append("Low")
    else:
        resultList.append("HIGH")
        # write other conditions here

cars_data["carsrange"] = resultList

then find uinque values from cars_data["carsrange"]

SM Abu Taher Asif
  • 2,221
  • 1
  • 12
  • 14