Когда вы выбираете подсет фрейма и ИЗМЕНЯЕТЕ этот подсет то может меняться и сам фрейм из которого этот подсет был выбран. Это известная особенность pandas, причина которых лежит в numpy. Как поправить, для этого используют копию и уже от этой копии и берется подсет. В вашем коде
comtraders2 = df_segment
вот это строчку нужно заменить на
comtraders2 = df_segment.copy()
И тогда будет работать, как вы ожидаете.
помните подобные операции, могут приводить к изменению оригинального фрейма.
df = pd.DataFrame({
'A':[1,2,3],
'B':[4,5,6]
})
subset = df['A']
subset[0] = 100
print(df)
И вы увидите ваш оригинальный df изменился. Существует несколько кейсов, при определенных он выдаст предупреждение, при таком как я привел выше и вовсе все произойдет молча.
поправить также, использовать копию.
df = pd.DataFrame({
'A':[1,2,3],
'B':[4,5,6]
})
subset = df['A'].copy()
subset[0] = 100
print(df)
Ну и немножко, не в тематику вашего вопроса, я не знаю какую задачу вы пытаетесь решить, но pandas код так не пишут (колонки со списками внутри это очень плохо), задача должна решаться по другому.