Вы вносите изменения в один и тот же кадр данных внутри каждого цикла.Если вы перепишите код, как показано ниже, это решит вашу проблему.
dep_cus_pandas_df = dep_cus_spark_df.toPandas()
dep_cus_pandas_df["cus_seg"] = ""
col_names = dep_cus_pandas_df.columns
df = dep_cus_pandas_df
df_new = pd.DataFrame(columns= col_names)
mk_unq = df.mark_seg.unique()
for mk in mk_unq:
df_f_m = df.loc[df.mark_seg == mk]
prc_unq = df_f_m.province.unique()
for prc in prc_unq:
df_f_p = df_f_m.loc[df_f_m.province == prc]
lb_unq = df_f_p.local_body.unique()
for lb in lb_unq:
df_f_lb = df_f_p.loc[df_f_p.local_body == lb]
brn_unq = df_f_lb.branch.unique()
for brn in brn_unq:
df_f_brn = df_f_lb.loc[df_f_lb.branch == brn]
acc_unq = df_f_brn.acc_type.unique()
for acc in acc_unq:
df_f_acc = df_f_brn.loc[df_f_brn.acc_type == acc]
df_f_acc.cus_seg = pd.cut(df_f_acc.run_bal.sort_values(), 4, labels= ["min_q1", "q1_q2", "q2_q3", "q3_max"],
duplicates = "drop")
df_new = pd.concat([df_new, df_f_acc], axis = 0)
dep_cus_spark_df_new = sc_sql.createDataFrame(df_new, schema=["cid", "run_bal", "last_tran_date",
"mark_seg", "province","local_body",
"branch", "acc_type", "int_rate", "cus_seg"])