Добавить в функцию на python выгрузку таблиц в csv с наименованием

Написана функция:

def split_reg(df):

regions = df['region_id'].unique()
for reg in regions:
    df_reg = df[df['region_id'] == reg]
    display(df_reg)

принимает на вход датафрейм со столбцами 'contact_id', 'phone', 'region_id', 'name', на выходе выводит на экран несколько таблиц, разделенных по признаку 'region_id'.

что и как нужно добавить в эту функцию или изменить, чтобы она эти таблицы сохраняла каждую в отдельный csv-файл с именем каждого региона ('name')?

пробовала делать вложенный цикл, файлы сохраняются, но под каждым именем сохраняется только один последний регион((

def split_reg(df):
regions = df['region_id'].unique()
names = df['name'].unique()
for name in names:
    for reg in regions:
        df_reg = df[df['region_id'] == reg]
        df_reg.to_csv(f'{name}.csv', index= False)

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

Автор решения: Корчагин Сергей
def split_reg(df):
    regions = df['region_id'].unique()
    for reg in regions:
        df_reg = df[df['region_id'] == reg]
        region_name = df_reg['name'].iloc[0]
        df_reg.to_csv(f'{region_name}.csv', index=False)
→ Ссылка
Автор решения: Алексей Р

Можно сгруппировать по имени и через apply() вывести все группы в отдельные файлы

def split_reg(df):
    df.groupby('name').apply(lambda x: x.to_csv(rf'c:\test\{x.name}.csv', index=False))


df = pd.DataFrame({'contact_id': [123, 456, 789] * 3, 'phone': [11111, 22222, 33333] * 3, 'region_id': [12, 13, 14] * 3, 'name': ['Первый', 'Второй', 'Третий'] * 3})
split_reg(df)

Образец вывода

contact_id,phone,region_id,name
789,33333,14,Третий
789,33333,14,Третий
789,33333,14,Третий
→ Ссылка