如何将不同sheet下的列进行合并
如何将不同sheet下的列进行合并
-
方式一
要将不同工作表中的同一列数据合并成一个新的DataFrame中的一列,可以使用以下步骤:
- 读取多个工作表中的数据。
- 提取每个工作表中的同一列。
- 将这些列数据合并成一个新的DataFrame。
- 保存合并后的数据到新的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'")

浙公网安备 33010602011771号