数据合并后,第二个表格数据错位:import pandas as pd # 读取第一个 Excel 表格的数据 df1 = pd.read_excel('附件一:2022年12月末存量公司客户管户认领情况表__海沧-1.xlsx') # 定义一个空的 DataFrame,用于存储所有 Excel 表格的数据 result = pd.DataFrame() # 循环读取其他 Excel 表格的数据,合并到 result 中 for file in ['附件二:2023年3月末新拓公司客户管户认领情况表__海沧-1.xlsx']: df = pd.read_excel(file) result = pd.concat([result, df], ignore_index=True) # 将第一个 Excel 表格和合并后的所有数据合并 df = pd.concat([df1, result], ignore_index=True) # 输出到新的 Excel 表格中 df.to_excel('new_table.xlsx', index=False)
时间: 2024-02-04 08:03:32 浏览: 130
如果第二个表格数据错位,可能是由于该表格的列名与第一个表格的列名不一致导致的。你可以使用 pandas 的 merge 函数,指定合并列的名称,以避免数据错位。例如:
```python
import pandas as pd
# 读取第一个 Excel 表格的数据
df1 = pd.read_excel('附件一:2022年12月末存量公司客户管户认领情况表__海沧-1.xlsx')
# 读取第二个 Excel 表格的数据
df2 = pd.read_excel('附件二:2023年3月末新拓公司客户管户认领情况表__海沧-1.xlsx')
# 合并两个表格的数据,指定合并列的名称
df = pd.merge(df1, df2, on='客户编号')
# 输出到新的 Excel 表格中
df.to_excel('new_table.xlsx', index=False)
```
在上面的代码中,我们使用了 merge 函数来合并两个表格的数据,指定了合并列的名称为客户编号(假设该列在两个表格中的名称都为“客户编号”)。这样可以确保数据合并时不会出现错位的情况。
相关问题
代码如下:import pandas as pd # 读取第一个 Excel 表格的数据 df1 = pd.read_excel('附件一:2022年12月末存量公司客户管户认领情况表__海沧-1.xlsx') # 定义一个空的 DataFrame,用于存储所有 Excel 表格的数据 result = pd.DataFrame() # 循环读取其他 Excel 表格的数据,合并到 result 中 for file in ['附件三:2022年12月末存量机构客户管户认领情况表__海沧支行-1.xlsx', '附件二:2023年3月末新拓公司客户管户认领情况表__海沧-1.xlsx', '附件四:2023年3月末新拓机构客户管户认领情况表__海沧支行-1.xlsx']: df = pd.read_excel(file) result = result.append(df) # 将第一个 Excel 表格和合并后的所有数据合并 df = pd.concat([df1, result], ignore_index=True) # 输出到新的 Excel 表格中 df.to_excel('new_table.xlsx', index=False)
我看了你的代码,发现问题出在第 9 行,你使用了 result.append(df) 方法,但是 DataFrame 对象并没有 append 方法。你可以使用 concat 方法将 df 合并到 result 中,如下所示:
```python
result = pd.concat([result, df], ignore_index=True)
```
这样就可以正确地将多个 Excel 表格合并到一个 DataFrame 中了。
合并结果的列标题命名:import pandas as pd # 1. 读取指定表格 df1 = pd.read_excel('result-new.xlsx', sheet_name='Sheet1') df2 = pd.read_excel('基础数据-new.xlsx', sheet_name='本外币') df3 = pd.read_excel('基础数据-new.xlsx', sheet_name='人民币') # 标的表索引列位置及数据位置 grouped = df2.groupby(df2.columns[1]).agg({df2.columns[2]: 'sum', df2.columns[5]: 'sum'}).reset_index() grouped1 = df3.groupby(df2.columns[1]).agg({df3.columns[2]: 'sum', df3.columns[5]: 'sum'}).reset_index() # 合并表1和表2的结果 result = pd.merge(df1, grouped, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') result = pd.merge(result, grouped1, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') # 输出结果到文件 result.to_excel('531本外币比年初.xlsx', index=False)
这段代码的作用是读取三个 Excel 文件,并对其中的两个文件进行分组计算,然后将计算结果和第一个文件合并,并输出到一个新的 Excel 文件中。其中,第一个文件中的第二列与分组后的结果进行合并,最终合并的结果文件的列标题为原文件的列标题。特别地,第一个文件中的第二列在分组计算后也成为了结果文件的一列。
阅读全文
相关推荐














