Py学习  »  Python

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

Edison Toh • 6 年前 • 1705 次点击  

我想问一下如何从一个excel文件中复制某些类似的数据行,并根据特定的列名保存到另一个excel文件中?我想根据第1列“name”找出类似的单词(输入文件中有3列,分别是name、number和number),然后将整行复制到另一个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文件no2):

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

预期输出(excel文件no3):

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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47080
文章 [ 1 ]  |  最新文章 6 年前
WeNYoBen
Reply   •   1 楼
WeNYoBen    6 年前

你可以查一下 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