如何从Excel文件中复制某些相似的数据行并保存到另一个Excel文件中?

时间:2019-07-01 03:29:00

标签: python excel pandas xlsx

我想问一下如何从excel文件中复制某些相似的数据行,并根据特定的列名保存到另一个excel文件中?我想根据编号为“名称”的第1列找出相似的单词(输入文件中有3列,分别是名称,数字和数字),然后将整行复制到另一个excel文件中。接下来,我还希望通过添加'zzzz | 0 | 0'在丢失的行上。

最终,将有3个不同的excel文件。所有文件都有相同的行数,在这种情况下,每个文件都有4行。

输入(excel文件):

name | number | number 
aaaa | 123456 | 223456
aaaa | 123456 | 221456
bbbb | 123356 | 228456
bbbb | 123556 | 229456
cccc | 123756 | 200456
cccc | 122256 | 220756
cccc | 121156 | 226656

预期输出(Excel文件1):

name | number | number 
aaaa | 123456 | 223456
aaaa | 123456 | 221456
zzzz | 0      | 0

预期的输出(Excel文件2):

name | number | number 
bbbb | 123356 | 228456
bbbb | 123556 | 229456
zzzz | 0      | 0

预期输出(Excel文件3):

name | number | number 
cccc | 123756 | 200456
cccc | 122256 | 220756
cccc | 121156 | 226656

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用goupby + reindex

进行检查
g=df.groupby('name')
for x , y in g : 

    y=y.reset_index(drop=True).reindex(range(g.size().max())).fillna({'name':'zzzz'}).fillna(0)
    y.to_csv(x+'.csv')
    print(y)

   name    number  number.1
0  aaaa  123456.0  223456.0
1  aaaa  123456.0  221456.0
2  zzzz       0.0       0.0
   name    number  number.1
0  bbbb  123356.0  228456.0
1  bbbb  123556.0  229456.0
2  zzzz       0.0       0.0
   name  number  number.1
0  cccc  123756    200456
1  cccc  122256    220756
2  cccc  121156    226656