使用python为1列中的相同值创建多个csv

Posted

技术标签:

【中文标题】使用python为1列中的相同值创建多个csv【英文标题】:create multiple csvs for same values in 1 column using python 【发布时间】:2020-12-04 22:02:01 【问题描述】:

我是 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)

【问题讨论】:

【参考方案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'fnfile.csv'))

【讨论】:

以上是关于使用python为1列中的相同值创建多个csv的主要内容,如果未能解决你的问题,请参考以下文章

为dataframe python列中的每个唯一值创建excel工作表

Python:在一列中为另一列中的单个值显示多个值

一列中相同值的R子集行取决于另一列中的多个值

将分组后列的多个值合并为python pandas中的一列

特征缩放以相同比例转换列中的不同值

R:如何使用其他列中的数据在一列中创建多个新值并为每个新值重复行?