Проблема со списками питон

Есть код, он получает данные из excel-файла. Проблема в том, что в одной ячейке (состоит из 4 строк) может находится два события и он записывает их под один subject. Как можно исправить?

def get_schedule_for_today(excel_file, day_column, group_column):
    df = pd.read_excel(excel_file)
    df.columns = df.columns.str.strip()    
    today = datetime.now().weekday() 
    today_schedule = df[df[day_column] == days_of_week[today]]
    if not today_schedule.empty:
        start_index = today_schedule.index[0]  
        end_index = min(start_index + 20, len(df))  
        
        
        schedule_array = [] 

        
        pattern = re.compile(r'^[А-ЯЁ][а-яё]+s[А-ЯЁ].[А-ЯЁ].sАуд.sd{3}')

        for index, row in df.iloc[start_index:end_index].iterrows():
            time_slot = row['Unnamed: 1']  
            subjects = row[group_column]  
            
            
            if pd.isna(subjects):
                continue
            
            
            subjects_list = [subject.strip() for subject in str(subjects).split(',')]
            i = 0
            for subject in subjects_list:
                if pd.isna(time_slot):
                    i+=1
                    print(subject, i)
                    
                    if schedule_array:
                        schedule_array[-1]['subject'] += f" {subject};"
                else:
                    
                    schedule_array.append({'time': time_slot, 'subject': subject})

        return schedule_array  
    else:
        return [] 

Ответы (1 шт):

Автор решения: Evgenii Evstafev

Проблема, скорее всего, кроется в использовании .split(','). Этот метод разделяет содержимое ячейки только по запятым. Вероятно, ожидаемое поведение - разделять текст также и по переносам строк в рамках каждой итерируемой ячейки.

Для разделения по переносам строк используйте .split('\n').

Если же необходимо обрабатывать оба типа разделителей (и переносы строк, и запятые), то может потребоваться комбинированный подход: сначала разбить содержимое ячейки на строки с помощью .split('\n'), а затем, например, каждую полученную непустую строку дополнительно разбить по запятым с помощью .split(',')

→ Ссылка