在使用pd.concat()堆叠数据之前,我需要一些帮助来编辑我的Excel工作簿中的工作表。我的Excel工作簿中的每个工作表(~100)的结构都是相同的,每个工作表的唯一标识符是一个6位数的代码,位于工作表的第一行。x1c 0d1x
我已经完成了以下步骤来导入文件,取消合并行1-4,并插入一个新列“C”:
import openpyxl
import pandas as pd
wb = openpyxl.load_workbook('data_sheets.xlsx')
for sheet in wb.worksheets:
sheet.merged_cells
for merge in list(sheet.merged_cells):
sheet.unmerge_cells(range_string=str(merge))
sheet.insert_cols(3, 1)
print(sheet)
wb.save('workbook_test.xlsx')
#concat once worksheets have been edited
df= pd.concat(pd.read_excel('workbook_test.xlsx, sheet_name= None), ignore_index= True)
然而,在堆叠数据之前,我想对每张图纸进行以下附加(顺序)更改:
1.从第1行中提取右侧的8个字符(在excel中,相当于=RIGHT(A1,8)-这是为了从每张工作表中提取唯一的代码,看起来像“(000000)”。
1.用唯一代码填充C列的第6-282行。
1.删除第1-5行
最终结果将使工作簿中的每个工作表如下所示:
这是可能的做与openpyxl,如果是这样,如何?任何方向或援助,这将是非常感谢-谢谢!
1条答案
按热度按时间1qczuiv01#
以下是一种 100%
openpyxl
方法,可实现您的目标:注意:这假设已经有一个空列(
C
)。