You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python入门求助:合并同结构.txt格式Excel表格的正确方法

解决两个结构相同Excel文件的合并问题

嘿,刚入门Python的话,咱们一步步来理清楚你的问题哈~ 首先看你写的代码里有几个小问题,然后咱们用正确的方法来实现合并:

先说说你代码里的几个小问题

  • 模块导入语法错误import numpy as np import pandas as pd 应该分成两行写(更推荐这种方式,可读性更好),或者用分号分隔
  • 文件路径写法问题:路径里的空格和格式不对,比如 r' \C:..xls' 应该去掉开头的空格,写成类似 r'C:\your\file\path\file1.xls' 这样的正确绝对路径
  • pd.merge 用错了场景merge 是用来做类似数据库的关联合并(比如按某一列匹配行),而你要合并结构相同的表,应该用pd.concat来纵向堆叠行;而且你传的是字符串'bd1''bd2',应该直接传变量名(不要加引号)
  • 读取文件的表头处理:第二个文件用了header="none",skiprows=1,如果两个表结构完全相同,要确保读取后的列名一致,不然合并会出问题

正确的合并方法(纵向堆叠)

因为两个表结构相同,咱们只需要把第二个表的所有行追加到第一个表后面就行,用pd.concat就可以轻松实现:

修正后的代码

# 正确导入模块(分行写更规范)
import numpy as np
import pandas as pd

# 读取第一个Excel文件,注意替换成你自己的正确路径
bd1 = pd.read_excel(r'C:\your\folder\file1.xls', sheet_name="Sheet1")

# 读取第二个Excel文件:如果第二个文件有重复的表头行,用skiprows=1跳过第一行
# 如果第二个文件没有重复表头,直接用和bd1一样的读取方式即可
bd2 = pd.read_excel(r'C:\your\folder\file2.xls', sheet_name="Sheet1", skiprows=1)

# 用concat纵向合并两个DataFrame,ignore_index=True重置合并后的索引,避免索引重复
bd3_new = pd.concat([bd1, bd2], ignore_index=True)

# 保存合并后的文件到指定路径,index=False避免把DataFrame索引存进Excel
bd3_new.to_excel(r'C:\your\folder\merged_file.xls', index=False)

关键说明

  • pd.concat([bd1, bd2], ignore_index=True):把两个DataFrame按行堆叠,ignore_index=True是为了生成新的连续索引,避免合并后出现重复的索引值
  • to_excel里的index=False:避免把DataFrame的索引列保存到Excel里,更符合常规的Excel文件格式
  • 如果两个文件的表头完全一致,不需要额外处理表头;如果第二个文件有重复的表头行,用skiprows=1跳过那一行即可

内容的提问来源于stack exchange,提问作者Noldo17

火山引擎 最新活动