如何将不同sheet下的列进行合并

如何将不同sheet下的列进行合并

  • 方式一

要将不同工作表中的同一列数据合并成一个新的DataFrame中的一列,可以使用以下步骤:

  1. 读取多个工作表中的数据
  2. 提取每个工作表中的同一列
  3. 将这些列数据合并成一个新的DataFrame
  4. 保存合并后的数据到新的Excel文件中

假设你有一个Excel文件 data.xlsx,其中包含多个工作表,每个工作表都有一个相同列名的列需要合并。这里假设列名是 ColumnToMerge

import pandas as pd

# 读取Excel文件
excel_file = 'data.xlsx'
sheet_names = pd.ExcelFile(excel_file).sheet_names

# 定义要合并的列名
column_to_merge = 'ColumnToMerge'

# 初始化一个空的DataFrame来存储合并后的数据
merged_data = pd.DataFrame(columns=[column_to_merge])

# 遍历每个工作表,提取要合并的列
for sheet_name in sheet_names:
    df = pd.read_excel(excel_file, sheet_name=sheet_name)
    # 提取特定列并去除NaN值
    column_data = df[[column_to_merge]].dropna()
    merged_data = pd.concat([merged_data, column_data], ignore_index=True)

# 保存合并后的数据到新的Excel文件
merged_data.to_excel('merged_data.xlsx', index=False)

print("不同工作表中的同一列数据已合并并保存到 'merged_data.xlsx'")

  • 方式二

sheet_name=None 方式来获取

xiaoxiong_bev_path = 'data.xlsx'

df = pd.read_excel(xiaoxiong_bev_path, sheet_name=None)
sheet_names = df.keys()
df_ColumnToMerge = []
for sheet_name in sheet_names:
    df_merge = df[sheet_name]['ColumnToMerge']
    df_ColumnToMerge.append(df_merge)
  • 如果是多列的情况合并

import pandas as pd

# 读取Excel文件
excel_file = 'your_excel_file.xlsx'

# 获取所有工作表的名称
sheet_names = pd.ExcelFile(excel_file).sheet_names

# 定义要合并的列
columns_to_merge = ['BEV', 'PHEV', 'EREV']

# 初始化一个空的DataFrame来存储合并后的数据
merged_data = pd.DataFrame()

# 遍历所有工作表
for sheet in sheet_names:
    sheet_df = pd.read_excel(excel_file, sheet_name=sheet)
    # 只保留需要合并的列
    sheet_df = sheet_df[columns_to_merge]
    # 将数据添加到合并的DataFrame中
    merged_data = pd.concat([merged_data, sheet_df], ignore_index=True)

# 保存合并后的数据到新的Excel文件
merged_data.to_excel('merged_data.xlsx', index=False)

print("所有工作表的列已合并并保存到 'merged_data.xlsx'")

posted @ 2024-06-28 15:47  Amiyai  阅读(223)  评论(0)    收藏  举报