создайте несколько csv для одинаковых значений в 1 столбце с помощью python

#python #pandas #csv #for-loop

#python #pandas #csv #for-цикл

Вопрос:

Я новичок в Python, и поэтому мне нужна помощь в создании нескольких csv из 1 csv для значения в 1 столбце. Ниже приведен пример моего исходного файла csv. Исходный файл имеет размер 1000 строк.

 Path                              FolderName    FolderOwner    EmailAddress
\Afolder1subfolder1file1      folder1       Roy            Roy@gmail.com
\Afolder2subfolder4file7      folder2       Roy            Roy@gmail.com
\Afolder3subfolder11file9     folder3       Jack           Jack@gmail.com
\Afolder4subfolder13file12    folder4       Jack           Jack@gmail.com
  

В приведенном выше примере я хочу запустить for loot, чтобы создать 2 новых CSV-файла для FolderOwner = Roy и Jack. В исходном CSV-файле я получил 50 владельцев папок.
Как только у меня будут эти CSV-файлы, я хочу автоматически отправить электронное письмо владельцам, используя папку EmailAddress, но это часть 2.

Сначала мне нужен скрипт на python с циклом for, чтобы автоматически создать 2 CSV-файла для Роя и Джека.

У меня есть приведенный ниже скрипт, но для него мне нужно указать FolderOwner вручную, что сложно для 50 владельцев.

 df1 = pd.read_csv ('originalfile.csv')
df2 = df1[df1.FolderOwner == 'Roy']
df3 = df2['Path', 'FolderName', 'FolderOwner']
df3.to_csv('Royfile.csv')
print(df3)
  

Ответ №1:

попробуйте это,

 df1 = pd.read_csv ('originalfile.csv')

for fn in df1.FolderOwner.unique():
    (df1.loc[df1.FolderOwner.eq(fn),
             ['Path', 'FolderName', 'FolderOwner']].to_csv(f'{fn}file.csv'))