如何从 excel 文件中复制某些类似的数据行并保存到另一个 excel 文件中?
How to copy certain similar rows of data from excel file and save into another excel file?
请问如何从一个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 文件 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
任何帮助将不胜感激,谢谢!
您可以使用 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
请问如何从一个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 文件 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
任何帮助将不胜感激,谢谢!
您可以使用 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