* РЕДАКТИРОВАТЬ Также не работает с .loc
Я не решался создать еще один пост о том, что fillna не работает, поскольку уже доступно много. Но я застрял на хороший день, работая над этим.
Я использую python с пандами и numpy, и у меня есть фрейм данных, который я использую для заполнения списков. Хотя, скорее всего, есть некоторые возможности для повышения производительности. У меня проблемы с тем, что метод fillna не работает. Я мог бы взять эту логику из понимания списка и поместить ее во встроенный цикл. На время, я бы предпочел нет.
Почему значения NaN не обновляются?
Спасибо заранее.
df_race_details['MSTR_ID'] = np.nan
lst_b_cust = []
df_grpd_cust = df_race_details.groupby('CUST_LIST_ID')
itr_mstr_id = iter(range(1, len(df_grpd_cust.groups)+1,1))
[
df_race_details.loc[df_race_details['CUST_LIST_ID'] == nm_b, 'MSTR_ID'].fillna(value=itr_mstr_id.__next__(), inplace=True)
for nm_a, gp_a in df_grpd_cust
if gp_a['MSTR_ID'].isnull().values.any()
for nm_b, gp_b in df_grpd_cust
if gp_b['MSTR_ID'].isnull().values.any()
for i in lst_gp_b
if i in gp_a['CUSTOMER_ID'].tolist()
]
#Specifically this line is not updating the dataframe
df_race_details.loc[df_race_details['CUST_LIST_ID'] == nm_b, 'MSTR_ID'].fillna(value=itr_mstr_id.__next__(), inplace=True)