Encoding error

I have this type of error.What should I do?

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

Traceback:

File "c:\users\lala\appdata\local\programs\python\python39\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 552, in _run_script
    exec(code, module.__dict__)File "C:\Users\Lala\Taskilled\Moto4\streamlit\pages\Prediction.py", line 398, in <module>
    marka = marka_encoding[marka]

Looks like a syntax/parameter error and not streamlit’s. Anyways, can you the code/repo from where the marka variable comes in. It will help me troubleshoot this more specifically!

This is whole code.Can u please check?

from PIL import Image
import plotly.express as px
import streamlit as st
import seaborn as sns
import pandas as pd
import warnings
import pickle
import numpy as np
import time
from xgboost import XGBRegressor
from sklearn.model_selection import RepeatedKFold,RepeatedStratifiedKFold,StratifiedKFold,train_test_split,GridSearchCV,cross_val_score
from sklearn.preprocessing import StandardScaler , RobustScaler, MaxAbsScaler,MinMaxScaler,OneHotEncoder, LabelEncoder
from sklearn.feature_selection import SequentialFeatureSelector
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer

df = pd.read_csv('../turbo.csv')

df.columns = df.columns.str.replace(pat = ' ', repl = '_')
df.columns = df.columns.str.lower()
df.columns = df.columns.str.strip()

df = df.drop(columns= ['satici','telefonlar','yeniləndi','baxışların_sayı','url','sahiblər','qəzalı','etrafli','yerlərin_sayı'])

df=df.loc[df['qiymet']>1000]

def convert_currency(df = None):
    azn_index = df.loc[df.valyuta =='AZN'].index
    euro_index = df.loc[df.valyuta == 'EUR'].index
    usd_index = df.loc[df.valyuta == 'USD'].index
    
    euro_to_azn = df.loc[df.index.isin(values = euro_index), 'qiymet'].astype(dtype = 'float') * 1.81
    usd_to_azn = df.loc[df.index.isin(values = usd_index), 'qiymet'].astype(dtype = 'float') * 1.7
    azn = df.loc[df.index.isin(values = azn_index), 'qiymet'].astype(dtype = 'float')
    
    df.loc[df.index.isin(values = euro_index), 'qiymet'] = euro_to_azn
    df.loc[df.index.isin(values = usd_index), 'qiymet'] = usd_to_azn
    df.loc[df.index.isin(values = azn_index), 'qiymet'] = azn
    
    df.qiymet = df.qiymet.apply(func = lambda x: int(x))
    df.drop(columns = 'valyuta', inplace = True)
    return df

def create_new_columns(df = None):
    df['mühərrik_hecmi'] = df.mühərrik.apply(lambda x: x.split('/')[0])
    df['mühərrik_gucu'] = df.mühərrik.apply(lambda x: x.split('/')[1])
    df['yanacaq_novu'] = df.mühərrik.apply(lambda x: x.split('/')[2])
    df['vuruğu_var'] = df.vəziyyəti.apply(lambda x: x.split(',')[0] if pd.notna(x) else np.nan)
    df['rənglənib'] = df.vəziyyəti.apply(lambda x: x.split(',')[1] if pd.notna(x) else np.nan)
    df['lehimli_disk'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Yüngül lehimli disklər' in x else 'yox')
    df['abs'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'ABS' in x else 'yox')
    df['lyuk'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Lyuk' in x else 'yox')
    df['yağış_sensoru'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Yağış sensoru' in x else 'yox')
    df['mərkəzi_qapanma'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Mərkəzi qapanma' in x else 'yox')
    df['park_radarı'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Park radarı' in x else 'yox')
    df['kondisioner'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Kondisioner' in x else 'yox')
    df['oturacaqların_isidilməsi'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Oturacaqların isidilməsi' in x else 'yox')
    df['dəri_salon'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Dəri salon' in x else 'yox')
    df['ksenon_lampalar'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Ksenon lampalar' in x else 'yox')
    df['arxa_görüntü_kamerası'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Arxa görüntü kamerası' in x else 'yox')
    df['yan_pərdələr'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Yan pərdələr' in x else 'yox')
    df['oturacaqların_ventilyasiyası'] = df.extra.apply(lambda x: np.nan if pd.isna(x) else 'var' if 'Oturacaqların ventilyasiyası' in x else 'yox')

    df.drop(columns = ['mühərrik','vəziyyəti','extra'], inplace = True)
    return df

def convert_int(df = None):
    df.mühərrik_hecmi = df.mühərrik_hecmi.str.replace(pat = 'L', repl = '')
    df.mühərrik_gucu = df.mühərrik_gucu.str.replace(pat = 'a.g.', repl = '')
    df.yürüş = df.yürüş.str.replace(pat = 'km', repl = '')
    df.yürüş = df.yürüş.str.replace(pat = ' ', repl = '')
    df.mühərrik_hecmi = pd.to_numeric(arg = df.mühərrik_hecmi, downcast = 'float')
    df[['mühərrik_gucu', 'yürüş']] = df[['mühərrik_gucu', 'yürüş']].applymap(func = lambda x: int(x))
    return df

def convert_str(df = None):
    df.avtosalon = df.avtosalon.apply(lambda x: 'he' if x==1 else 'yox')
    return df

def convert_lower_case(df = None):
    df_obj = df.select_dtypes(include = 'object') 
    df[df_obj.columns] = df_obj.applymap(lambda x: np.nan if pd.isna(x) else x.lower())
    return df

df = df.pipe(func = convert_currency).pipe(func = create_new_columns).pipe(func = convert_int).pipe(func = convert_str).pipe(func = convert_lower_case)


moto_nan_list=df[df['ban_növü']=='motosiklet'].iloc[:,19:31].drop(columns=['dəri_salon','abs']).columns.tolist()


def motosikle_change_nan(data_frame=None):
    for i in moto_nan_list:
        data_frame[i].fillna('yox' , inplace=True)
    return data_frame
motosikle_change_nan(data_frame=df)


categoric_data = df.select_dtypes(include='object')

# Initialize SimpleImputer with the 'most_frequent' strategy
imputer = SimpleImputer(strategy='most_frequent')

# Fit and transform the imputer on the categorical columns
categoric_data_imputed = pd.DataFrame(imputer.fit_transform(categoric_data), columns=categoric_data.columns)

# Replace the original categorical columns with the imputed data
df[categoric_data.columns] = categoric_data_imputed

df=pd.concat([categoric_data,df.select_dtypes(include='number')] , axis=1)

# categoric_data_imputed
label_encoder = LabelEncoder()



marka_encoding = label_encoder.fit_transform(df['marka'])
model_encoding = label_encoder.fit_transform(df['model'])
şəhər_encoding = label_encoder.fit_transform(df['şəhər'])
yanacaq_novu_encoding = label_encoder.fit_transform(df['yanacaq_novu'])
ötürücü_encoding = label_encoder.fit_transform(df['ötürücü'])
ban_növü_encoding = label_encoder.fit_transform(df['ban_növü'])
sürətlər_qutusu_encoding = label_encoder.fit_transform(df['sürətlər_qutusu'])
rəng_encoding = label_encoder.fit_transform(df['rəng'])
hansı_bazar_encoding = label_encoder.fit_transform(df['hansı_bazar_üçün_yığılıb'])
rənglənib_encoding = label_encoder.fit_transform(df['rənglənib'])
vuruğu_var_encoding = label_encoder.fit_transform(df['vuruğu_var'])
lehimli_disk_encoding = label_encoder.fit_transform(df['lehimli_disk'])
abs_encoding = label_encoder.fit_transform(df['abs'])
lyuk_encoding = label_encoder.fit_transform(df['lyuk'])
yağış_sensoru_encoding = label_encoder.fit_transform(df['yağış_sensoru'])
mərkəzi_qapanma_encoding = label_encoder.fit_transform(df['mərkəzi_qapanma'])
park_radarı_encoding = label_encoder.fit_transform(df['park_radarı'])
kondisioner_encoding = label_encoder.fit_transform(df['kondisioner'])
oturacaqların_isidilməsi_encoding = label_encoder.fit_transform(df['oturacaqların_isidilməsi'])
dəri_salon_encoding = label_encoder.fit_transform(df['dəri_salon'])
ksenon_lampalar_encoding = label_encoder.fit_transform(df['ksenon_lampalar'])
arxa_görüntü_kamerası_encoding = label_encoder.fit_transform(df['arxa_görüntü_kamerası'])
yan_pərdələr_encoding = label_encoder.fit_transform(df['yan_pərdələr'])
oturacaqların_ventilyasiyası_encoding = label_encoder.fit_transform(df['oturacaqların_ventilyasiyası'])
avtosalon_encoding = label_encoder.fit_transform(df['avtosalon'])
yeni_encoding = label_encoder.fit_transform(df['yeni'])







df['marka'] = df['marka'].replace(marka_encoding)
df['model'] = df['model'].replace(model_encoding)
df['şəhər'] = df['şəhər'].replace(şəhər_encoding)
df['yanacaq_novu'] = df['yanacaq_novu'].replace(yanacaq_novu_encoding)
df['ötürücü'] = df['ötürücü'].replace(ötürücü_encoding)
df['ban_növü'] = df['ban_növü'].replace(ban_növü_encoding)
df['sürətlər_qutusu'] = df['sürətlər_qutusu'].replace(sürətlər_qutusu_encoding)
df['rəng'] = df['rəng'].replace(rəng_encoding)
df['hansı_bazar_üçün_yığılıb'] = df['hansı_bazar_üçün_yığılıb'].replace(hansı_bazar_encoding)
df['rənglənib'] = df['rənglənib'].replace(rənglənib_encoding)
df['vuruğu_var'] = df['vuruğu_var'].replace(vuruğu_var_encoding)
df['lehimli_disk'] = df['lehimli_disk'].replace(lehimli_disk_encoding)
df['abs'] = df['abs'].replace(abs_encoding)
df['yağış_sensoru'] = df['yağış_sensoru'].replace(yağış_sensoru_encoding)
df['mərkəzi_qapanma'] = df['mərkəzi_qapanma'].replace(mərkəzi_qapanma_encoding)
df['park_radarı'] = df['park_radarı'].replace(park_radarı_encoding)
df['kondisioner'] = df['kondisioner'].replace(kondisioner_encoding)
df['oturacaqların_isidilməsi'] = df['oturacaqların_isidilməsi'].replace(oturacaqların_isidilməsi_encoding)
df['dəri_salon'] = df['dəri_salon'].replace(dəri_salon_encoding)
df['ksenon_lampalar'] = df['ksenon_lampalar'].replace(ksenon_lampalar_encoding)
df['arxa_görüntü_kamerası'] = df['arxa_görüntü_kamerası'].replace(arxa_görüntü_kamerası_encoding)
df['yan_pərdələr'] = df['yan_pərdələr'].replace(yan_pərdələr_encoding)
df['oturacaqların_ventilyasiyası'] = df['oturacaqların_ventilyasiyası'].replace(oturacaqların_ventilyasiyası_encoding)
df['avtosalon'] = df['avtosalon'].replace(avtosalon_encoding)
df['yeni'] = df['yeni'].replace(yeni_encoding)

    
interface = st.container()


with interface:
    
    st.title(body = 'Enter Key Car Features')
    
   
    st.markdown(body = '***')
    
    
    marka , model, şəhər = st.columns(spec = [1, 1, 1])
    

    with marka:
        marka = st.selectbox(label = 'Brand', options = df['marka'].sort_values().unique().tolist())
    

    with model:
        model = st.selectbox(label = 'Model', options = df[df['marka'] == marka]['model'].sort_values().unique().tolist())
        
    with şəhər:
        şəhər = st.selectbox(label = 'City', options = df['şəhər'].sort_values().unique().tolist())
        
    st.markdown(body = '***')
    
    
    yanacaq_novu, ötürücü, ban_növü, sürətlər_qutusu = st.columns(spec = [1, 1, 1, 1])
        
    with yanacaq_novu:
        yanacaq_novu = st.selectbox(label = 'Fuel type', options = df.yanacaq_novu.unique().tolist())
    
    with ötürücü:
        ötürücü = st.selectbox(label = 'Gear', options = df.ötürücü.unique().tolist())

    with ban_növü:
        ban_növü = st.selectbox(label = 'Ban type', options = df.ban_növü.unique().tolist())
        
    with sürətlər_qutusu:
        sürətlər_qutusu = st.selectbox(label = 'Gear box', options = df.sürətlər_qutusu.unique().tolist())
        
    st.markdown(body = '***')
    
    
    yürüş = st.number_input(label = 'Mileage (km)', value = 0, step = 10 )
    button_text = 'Send values'
 
    st.markdown(body = '***')
    
    buraxılış_ili = st.slider(label='Year',min_value = int(df.buraxılış_ili.min()),
                              max_value= int(df.buraxılış_ili.max()),value = int(df.buraxılış_ili.mean()))
    
    st.markdown(body = '***')
    
    rəng, hansı_bazar_üçün_yığılıb = st.columns(spec = [1, 1])
    
    with rəng:
         rəng = st.selectbox(label = 'Color', options = df.rəng.sort_values().unique().tolist())
            
    with hansı_bazar_üçün_yığılıb:
         hansı_bazar_üçün_yığılıb = st.selectbox(label = 'For which market it is assembled', options = categoric_data_imputed.hansı_bazar_üçün_yığılıb.sort_values().unique().tolist())
            
    st.markdown(body = '***')
    
    mühərrik_hecmi, mühərrik_gucu = st.columns(spec = [1, 1])
    
    with mühərrik_hecmi:
        mühərrik_hecmi = st.number_input(label = 'Engine volume (cm³)', value = 0, step = 50 )
        button_text = 'Send values'
    
    with mühərrik_gucu:
        mühərrik_gucu = st.number_input(label = 'Engine power(a.g.)', value = 0.0, step = 1.0, format="%.1f" )
    
    st.markdown(body = '***') 
     
    st.subheader(body = 'Condition')
    
    rənglənib, vuruğu_var = st.columns(spec = [1, 1])
    
    with rənglənib:
        rənglənib = st.radio(label = 'Is it colored? ', options = ['Painted', 'Not painted'], horizontal = True)
        
    with vuruğu_var:
        vuruğu_var = st.radio(label = 'Does it have a stroke?', options = ['Has a stroke', 'Has not a stroke'], horizontal = True)
    
    st.markdown(body = '***')
    
    st.subheader(body = 'Car supply')
    
    
    
    
    lehimli_disk, abs_, lyuk, yağış_sensoru, mərkəzi_qapanma = st.columns(spec = [1, 1, 1, 1, 1])
   
    with lehimli_disk:
        lehimli_disk = st.radio(label = 'Solder disc', options = ['Yes', 'No'], horizontal = True)
        
    with abs_:
        abs_ = st.radio(label = 'ABS', options = ['Yes', 'No'], horizontal = True)
    
    with lyuk:
        lyuk = st.radio(label = 'Lyuk', options = ['Yes', 'No'], horizontal = True)
        
    with yağış_sensoru:
        yağış_sensoru = st.radio(label = 'Rain sensor', options = ['Yes', 'No'], horizontal = True)
        
    with mərkəzi_qapanma:
        mərkəzi_qapanma = st.radio(label = 'Central locking', options = ['Yes', 'No'], horizontal = True)
        
    st.write('<hr style="height: px; background-color: gray; border: none; margin: px 0;" />', unsafe_allow_html=True)
    
    park_radarı, kondisioner, oturacaqların_isidilməsi, dəri_salon, ksenon_lampalar = st.columns(spec = [1, 1, 1, 1, 1])
    
    with park_radarı:
        park_radarı = st.radio(label = 'Parking radar', options = ['Yes', 'No'], horizontal = True)
        
    with kondisioner:
        kondisioner = st.radio(label = 'Air conditioning', options = ['Yes', 'No'], horizontal = True)
    
    with oturacaqların_isidilməsi:
        oturacaqların_isidilməsi = st.radio(label = 'Heated seats', options = ['Yes', 'No'], horizontal = True)
        
    with dəri_salon:
        dəri_salon = st.radio(label = 'Skin salon', options = ['Yes', 'No'], horizontal = True)
        
    with ksenon_lampalar:
        ksenon_lampalar = st.radio(label = 'Xenon lamps', options = ['Yes', 'No'], horizontal = True)
        
    st.write('<hr style="height: px; background-color: gray; border: none; margin: px 0;" />', unsafe_allow_html=True)
    
    
    arxa_görüntü_kamerası, yan_pərdələr, oturacaqların_ventilyasiyası,avtosalon,yeni = st.columns(spec = [1, 1, 1,1,1])
    
    with arxa_görüntü_kamerası:
        arxa_görüntü_kamerası = st.radio(label = 'Rear view camera', options = ['Yes', 'No'], horizontal = True)
        
    with yan_pərdələr:
        yan_pərdələr = st.radio(label = 'Side curtains', options = ['Yes', 'No'], horizontal = True)
    
    with oturacaqların_ventilyasiyası:
        oturacaqların_ventilyasiyası = st.radio(label = 'Seat ventilation', options = ['Yes', 'No'], horizontal = True)
    
    with avtosalon:
        avtosalon = st.radio(label = 'Avtosalon', options = ['Yes', 'No'], horizontal = True)
        
    with yeni:
        yeni = st.radio(label = 'New?', options = ['Yes', 'No'], horizontal = True)
          
            

    
    marka = marka_encoding[marka]
    model = model_encoding[model]
    şəhər = şəhər_encoding[şəhər]
    yanacaq_novu = yanacaq_novu_encoding[yanacaq_novu]
    ötürücü = ötürücü_encoding[ötürücü]
    ban_növü = ban_növü_encoding[ban_növü]
    sürətlər_qutusu = sürətlər_qutusu_encoding[sürətlər_qutusu]
    rəng = rəng_encoding[rəng]
    hansı_bazar_üçün_yığılıb = hansı_bazar_encoding[hansı_bazar_üçün_yığılıb]
    rənglənib = rənglənib_encoding[rənglənib]
    vuruğu_var = vuruğu_var_encoding[vuruğu_var]
    lehimli_disk = lehimli_disk_encoding[lehimli_disk]
    abs_ = abs_encoding[abs_]
    lyuk = lyuk_encoding[lyuk]
    yağış_sensoru = yağış_sensoru_encoding[yağış_sensoru]
    mərkəzi_qapanma = mərkəzi_qapanma_encoding[mərkəzi_qapanma]
    park_radarı = park_radarı_encoding[park_radarı]
    kondisioner = kondisioner_encoding[kondisioner]
    oturacaqların_isidilməsi = oturacaqların_isidilməsi_encoding[oturacaqların_isidilməsi]
    dəri_salon = dəri_salon_encoding[dəri_salon]
    ksenon_lampalar = ksenon_lampalar_encoding[ksenon_lampalar]
    arxa_görüntü_kamerası = arxa_görüntü_kamerası_encoding[arxa_görüntü_kamerası]
    yan_pərdələr = yan_pərdələr_encoding[yan_pərdələr]
    oturacaqların_ventilyasiyası = oturacaqların_ventilyasiyası_encoding[oturacaqların_ventilyasiyası]
    avtosalon = avtosalon_encoding[avtosalon]
    yeni = yeni_encoding[yeni]
    
    
    
    
    input_features = pd.DataFrame({
        'marka': [marka],
        'model': [model],
        'şəhər':[şəhər],
        'yanacaq_novu': [yanacaq_novu],
        'ötürücü': [ötürücü],
        'ban_növü': [ban_növü],
        'sürətlər_qutusu': [sürətlər_qutusu],
        'yürüş': [yürüş],
        'buraxılış_ili': [buraxılış_ili],
        'rəng': [rəng],
        'hansı_bazar_üçün_yığılıb': [hansı_bazar_üçün_yığılıb],
        'mühərrik_hecmi': [mühərrik_hecmi],
        'mühərrik_gucu': [mühərrik_gucu],
        'rənglənib': [rənglənib],
        'vuruğu_var': [vuruğu_var],
        'lehimli_disk': [lehimli_disk],
        'abs_': [abs_],
        'lyuk': [lyuk],
        'yağış_sensoru': [yağış_sensoru],
        'mərkəzi_qapanma': [mərkəzi_qapanma],
        'park_radarı': [park_radarı],
        'kondisioner': [kondisioner],
        'oturacaqların_isidilməsi': [oturacaqların_isidilməsi],
        'dəri_salon': [dəri_salon],
        'ksenon_lampalar': [ksenon_lampalar],
        'arxa_görüntü_kamerası': [arxa_görüntü_kamerası],
        'yan_pərdələr': [yan_pərdələr],
        'oturacaqların_ventilyasiyası': [oturacaqların_ventilyasiyası],
        'avtosalon': [avtosalon],
        'yeni': [yeni]
    },index = [0])
    
    
    st.markdown(body = '***')
     
    st.subheader(body = 'Model Prediction')
    
    with open('car_model.pickle', 'rb') as pickled_model:
        
        model = pickle.load(pickled_model)
    
    if st.button('Predict'):
        cars_price = model.predict(input_features)

        with st.spinner('Sending input features to model...'):
            time.sleep(2)

        st.success('Prediction is ready')
        time.sleep(1)
        st.markdown(f'Car"s estimated price is ***{cars_price} AZN***')

The error occurs because you’re trying to use a car brand name as if it were a number, but you need to first convert it into a number using encoding to make it work correctly. I may not be right but searched ‘marka’ which means ‘brand’.
Try to use it like this:
marka = label_encoder.transform([marka])[0]

yes,‘‘marka’’ means brand.I tried your solution,but now it gives such error: IndexError: invalid index to scalar variable.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.