熊猫为所有唯一列值做某事

问题描述 投票:1回答:1

[仅刚开始使用熊猫的,所以请原谅我的无知。

说我有一个包含许多行和列的csv文件:

ID, Name, Number, SomethingElse
1, John, 234234, "word"
2, Dave, 2342423, "word2"
3, John, 54365345, "word3"

我想用Name的唯一值创建一个新的csv。我正在使用:

unique = df.Name.unique()

要获取新的DataFrame?具有所有唯一的名称,但我不知道如何使用此新DF查找每个名称,并使用该名称的所有值创建一个新文件:

file1.csv
ID, Name, Number, SomethingElse
1, John, 234234, "word"
3, John, 54365345, "word3"

file2.csv
ID, Name, Number, SomethingElse
2, Dave, 234234, "word2"

通常,我会在Python3中使用一个集合,然后使用嵌套循环,但是我认为我对什么是数据帧缺乏基本的了解。

python pandas
1个回答
3
投票

如果可能,通过nameJohn.csv值更改Dave.csv的文件名,或使用DataFrame.groupby更改DataFrame.groupby对象的DataFrame.to_csv的循环]]]

DataFrame.to_csv

对于小写文件名,请添加for i, g in df.groupby('Name'): g.to_csv(f'{i}.csv', index=False)

lower()

也可以将您的解决方案与for i, g in df.groupby('Name'): g.to_csv(f'{i.lower()}.csv', index=False) 一起使用以进行过滤:

boolean indexing

boolean indexingfor v in df.Name.unique(): df[df['Name'] == v].to_csv(f'{v.lower()}.csv', index=False) file1.csv的解决方案:

file2.csv

或:

enumerate
© www.soinside.com 2019 - 2024. All rights reserved.