根据另一列中的分组,将csv文件/pands数据帧拆分为多个文件



我在一个名为list.csv的csv文件中有以下数据集,该文件有2列68行,

name   group
295h1  groupA
20jca  groupA
....
2919d  groupG
....
2xx9a  groupM

每组有3-5个名字。

我想把这些名字分成小组,然后把文件保存到csv文件中,就像这样。

group-1.csv

295h1
20jca
..

group-13.csv

...
2xx9a

到目前为止,我有以下代码,

import pandas as pd
counter = 1
tlist = []
for idx,row in df.iterrows():
previousGroup = None
if row['group'] == previousGroup:
tlist.append(row['name'])
previousGroup = row['group']
else:
with open(f'group-{counter}'), 'w',) as myfile:
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(tlist)
counter += 1
tlist = []

但它创建了68个空文件,这是csv文件的长度。

如何根据我的要求正确拆分此文件?

如果需要,组名称groupA使用以1开头的数字,请使用:

for i, (_, group) in enumerate(df.groupby('group'), 1):
group['name'].to_csv(f'group-{i}.csv', index=False)

编辑:文件中的第一个值是一个想法,创建类似于:的MultiIndex

for i, (n, group) in enumerate(df.groupby('group'), 1):
g = group[['name']]
g.columns = [[n], g.columns]
#print (g)
g.to_csv(f'group-{i}.csv', index=False)

您应该使用pandas groupby和pd.to_csv((

grouped = df.groupby('group')
for num, g in grouped:
name = 'group' + '.csv'
g.to_csv(name)

相关内容

  • 没有找到相关文章

最新更新