почему строчки дублируются на выходе?
# по стратегиям
general_strategies_LT = pd.DataFrame()
request_strategies = request.strategy_param_code.dropna().unique()
conn = psycopg2.connect(dbname='spr', user='calculations_reader', password='calculations_r_LT_d0b9981d9dbc', host='10.56.188.205',port='5433')
cursor = conn.cursor()
cursor.execute(f'''
        SELECT DISTINCT STRATEGY_ID FROM CALCULATIONS_ADMIN.EXECUTED_STRATEGY 
        WHERE changed_at BETWEEN '{date_start}' AND '{date_end}'
        ''')
data_strategies = [model[0] for model in list(cursor.fetchall())]
 
for strategy in tqdm(request_strategies):
    strategy_name = ''
    for data_strategy in data_strategies:
        if strategy in data_strategy:
            strategy_name = data_strategy
    if not strategy_name:
        print(f'Стратегия {strategy} не найдена')
        continue

    request_params_steps = request[request['strategy_param_code'] == strategy]
    request_steps = list(request_params_steps.strategy_step_param_code.dropna().unique())

    cursor.execute(f'''
    SELECT * 
        FROM CALCULATIONS_ADMIN.EXECUTED_STRATEGY 
        WHERE (STRATEGY_ID='{strategy_name}' AND changed_at BETWEEN '{date_start}' AND '{date_end}'
        AND rs_message = 'SUCCESS')
        ''')
    data = cursor.fetchall()
    columns = [description[0] for description in cursor.description]
    cursor.execute(f'''
        SELECT * 
        FROM CALCULATIONS_ADMIN.EXECUTED_STRATEGY 
        WHERE (STRATEGY_ID='{strategy_name}' AND changed_at BETWEEN '{date_start}' AND '{date_end}'
        AND rs_message = 'SUCCESS')
        ''')
    data1 = cursor.fetchall()
    data.extend(data1)
    df = pd.DataFrame(data, columns=columns)
    df['inn_new'] = df['in_params'].apply(lambda x: find_values('INN', x)[0])
    df = df.set_index('chain_id').sort_index()
    general_strategies_LT = pd.concat([general_strategies_LT, df])
    
    chains = df.index.to_list()
    rq_uids = df['rq_uid'].to_list()

    if 'outputParams' in request_steps:
        request_steps.remove('outputParams')
        
    if request_steps:
        cursor.execute(f'''
                SELECT * 
                FROM CALCULATIONS_ADMIN.STRATEGY_STEP WHERE 
                (CALCULATIONS_ADMIN.STRATEGY_STEP.chain_id in ('{"', '".join(chains)}') 
                AND CALCULATIONS_ADMIN.STRATEGY_STEP.changed_at BETWEEN '{date_start}' AND '{date_end}'
                AND step_business_id in ('{"', '".join(request_steps)}')
                AND executed_strategy_id in ('{"', '".join(rq_uids)}'))''')

        data = cursor.fetchall()
        columns = [description[0] for description in cursor.description]
        cursor.execute(f'''
                SELECT *   
                FROM CALCULATIONS_ADMIN.STRATEGY_STEP WHERE 
                (CALCULATIONS_ADMIN.STRATEGY_STEP.chain_id in ('{"', '".join(chains)}') 
                AND CALCULATIONS_ADMIN.STRATEGY_STEP.changed_at BETWEEN '{date_start}' AND '{date_end}'
                AND step_business_id in ('{"', '".join(request_steps)}')
                AND executed_strategy_id in ('{"', '".join(rq_uids)}'))''')
        data1 = cursor.fetchall()
        data.extend(data1)
        df = pd.DataFrame(data, columns=columns)
        df['inn_new'] = df['in_params'].apply(lambda x: find_values('INN', x)[0] if x != 'В обработке' else None)
        df = df.set_index('chain_id').sort_index()
        general_strategies_LT = pd.concat([general_strategies_LT, df])
cursor.close()
conn.close()