首页 > 解决方案 > 使用python为1列中的相同值创建多个csv

问题描述

我是 Python 新手,因此需要帮助从 1 个 csv 创建多个 csv,以获得 1 列中的值。下面是我的原始 csv 文件示例。原始文件有 1000 行大。

Path                              FolderName    FolderOwner    EmailAddress
\\A\folder1\subfolder1\file1      folder1       Roy            Roy@gmail.com
\\A\folder2\subfolder4\file7      folder2       Roy            Roy@gmail.com
\\A\folder3\subfolder11\file9     folder3       Jack           Jack@gmail.com
\\A\folder4\subfolder13\file12    folder4       Jack           Jack@gmail.com

对于上面的例子,我想运行一个 for loot 来为 FolderOwner = Roy 和 Jack 创建 2 个新的 csv 文件。在原始 csv 文件中,我得到了 50 个 FolderOwners。拥有这些 CSV 文件后,我想使用 EmailAddress 文件夹向所有者发送自动电子邮件,但这是第 2 部分。

首先,我需要一个带有 for 循环的 python 脚本来自动为 Roy 和 Jack 创建 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)

标签: pythonpandascsvfor-loop

解决方案


试试这个,

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'))

推荐阅读