gpt4 book ai didi

python - 按唯一列拆分 CSV

转载 作者:行者123 更新时间:2023-12-01 07:16:09 25 4
gpt4 key购买 nike

我在尝试将 CSV 拆分为 CSV 文件的最小值时遇到了问题,因此每个文件中只有唯一的 ID

通过运行

count = df['id'].value_counts().max()

我已经知道应该创建的 csv 文件的数量(文件 1、文件 2、文件 3、文件 4)

我的预期输出应该是

文件1

 person_name     id    Total  Paid        Date          No
Deniss 55227 1191,75 0,00 21/08/2019 15/06/2018
RINALDS 56002 169,00 0,00 21/08/2019 15/06/2018
OLGA 54689 812,90 0,00 21/08/2019 15/05/2018

文件2

person_name     id    Total  Paid        Date          No
Deniss 55227 1191,75 0,00 21/08/2019 20180615
RINALDS 56002 169,00 0,00 21/08/2019 20180615
OLGA 54689 812,90 0,00 21/08/2019 20180515

文件3

person_name     id    Total  Paid        Date          No
Deniss 55227 1191,75 0,00 21/08/2019 20180613
RINALDS 56002 169,00 0,00 21/08/2019 20180614

文件4

person_name     id    Total  Paid        Date          No
Deniss 55227 1191,75 0,00 21/08/2019 20180612


最佳答案

使用GroupBy.cumcount for counter Series,然后循环写入文件:

g = df.groupby('id').cumcount() + 1

for i, df in df.groupby(g):
df.to_csv(f'file{i}.csv', index=False)

使用示例数据进行测试:

for i, df in df.groupby(g):
print (df)

person_name id Total Paid Date No
0 Deniss 55227 1191,75 0,00 21/08/2019 15/06/2018
4 RINALDS 56002 169,00 0,00 21/08/2019 15/06/2018
7 OLGA 54689 812,90 0,00 21/08/2019 15/05/2018
person_name id Total Paid Date No
1 Deniss 55227 1191,75 0,00 21/08/2019 20180615
5 RINALDS 56002 169,00 0,00 21/08/2019 20180615
8 OLGA 54689 812,90 0,00 21/08/2019 20180515
person_name id Total Paid Date No
2 Deniss 55227 1191,75 0,00 21/08/2019 20180613
6 RINALDS 56002 169,00 0,00 21/08/2019 20180614
person_name id Total Paid Date No
3 Deniss 55227 1191,75 0,00 21/08/2019 20180612

关于python - 按唯一列拆分 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57933983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com