Plotly choropleth not plotting all the variables

Hi to everyone, iโ€™m trying to plot world population from 1961 to 2013 in an animated chorpleth graph. I decided to bin the โ€˜countโ€™ series that has the number of population in a given year into a cathegorical Series using pandas.cut(), i created 7 ranges, but when i do plot only 6 of them are displayed and they are not even ordered (despite if i check the result of pandas.cut, it tells me that they are actually 7 and in the right order). If i move the slide bar, reaching the year 1982, a country looks like it has no value (but if i chech the dataframe, it does have) and after reaching year 1996, the legend change, showing the only range it wasnt shown before, but another one disappear, the country that was shown with no value suddenly it is represented correctly (despite its value were the same as from year 1982 (the first year in which the value of range change)

this is how the dataset looks like

dataset

here is the code of the graph

bins= [0, 10000000, 50000000, 100000000, 200000000, 500000000, 1000000000, 1500000000] # Assigning bins
labels= ['0 to 10 Millions', '10 to 50 Millions', '50 to 100 Millions', '100 to 200 Millions', '200 to 500 Millinons', '500 Millions to 1 Billion', '> 1 Billion'] # Assigning labels

cc = coco.CountryConverter()

lst = pop_df['country_name'].unique() #list of unique countries of the dataframe
pop_iso3 = cc.convert(names=lst, to='ISO3', not_found=np.NaN) #converting the countries in iso3
pop_df['iso_3'] = pop_df['country_name'].map({n:m for n, m in zip(lst, pop_iso3)}) #creating the iso3 column

#setting dataframe years from 1961 to 2013 and binning population count into cathegorical 
pop_df['year'] = pop_df['year'].astype(int)
pop_df['pop_range'] = pd.cut(pop_df['count'], bins=bins, labels=labels)
pop_df['pop_range'] = pop_df['pop_range'].astype(str)

cond = (pop_df['year'] >= 1961) & (pop_df['year'] <= 2013)
choro_df = pop_df.loc[cond]
    
# Graph representation 
fig = px.choropleth(
    choro_df, locations="iso_3",
    color="pop_range", 
    hover_name="country_name", 
    scope='world',
    animation_frame='year',
    color_discrete_sequence=px.colors.sequential.Plasma_r 
)

# Additional traces settings                    
fig.update_traces(
    marker=dict(
        line=dict(
            color='#cfcfbe',
            width=1
        )
    )
)

# #Add chart title, format the chart, etc.
fig.update_layout(
    title_text='Countries population by year (1961-2013)',
    geo=dict(
        showframe=False,
        showcoastlines=False,
        showlakes=False,
        projection_type='equirectangular',
        coastlinecolor='#cfcfbe',
        coastlinewidth=0.5,
        visible=True,
        resolution=110
    ),
    dragmode=False,
    height=900,
    annotations = [{
        'x':0.05,
        'y':0.15,
        'xref':'paper',
        'yref':'paper',
        'text':'Source: <a href="https://data.worldbank.org/indicator/SP.POP.TOTL?most_recent_year_desc=true">Wolrdbank.org</a>',
        'showarrow':False
    }]
)

fig.layout.updatemenus[0].buttons[0].args[1]['frame']['duration'] = 100
fig.layout.updatemenus[0].buttons[0].args[1]['transition']['duration'] = 5

fig.show()

this is the data showing only 6 ranges in the legend, year 1961

this is year 1982, when china lose its value and the legend still not showing all 7 ranges

this is me checking if china has all the right value and it actually has


and this is year 2013, the legend has changed (since 1996) but always showing 6 out of 7 ranges