[仅刚开始使用熊猫的,所以请原谅我的无知。
说我有一个包含许多行和列的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中使用一个集合,然后使用嵌套循环,但是我认为我对什么是数据帧缺乏基本的了解。
如果可能,通过name
的John.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 indexing
,for v in df.Name.unique(): df[df['Name'] == v].to_csv(f'{v.lower()}.csv', index=False)
和file1.csv
的解决方案:
file2.csv
或:
enumerate