Python 如果某些列相交,如何将一行从一张图纸复制到另一张图纸
鉴于: 我有一个文件Python 如果某些列相交,如何将一行从一张图纸复制到另一张图纸,python,excel,openpyxl,Python,Excel,Openpyxl,鉴于: 我有一个文件grumble.xlsx 内部有3个选项卡:Sheet1 Sheet2和sheet3 Sheet 1 has 588 rows and 11 columns of data Sheet 2 has 3029 rows and 17 columns of data Sheet 3 in empty 目标: 如果sheet1列的值\u name S2==为sheet2列的值\u name sp2->从sheet2复制整行并粘贴到工作表3中 必须有588个匹配项,就像shee
grumble.xlsx
内部有3个选项卡:Sheet1 Sheet2和sheet3
Sheet 1 has 588 rows and 11 columns of data
Sheet 2 has 3029 rows and 17 columns of data
Sheet 3 in empty
目标:
如果sheet1列的值\u name S2==为sheet2列的值\u name sp2->从sheet2复制整行并粘贴到工作表3中
必须有588个匹配项,就像sheet1中的许多行一样
到目前为止,我达到了这一点。我不知道该往哪里走
import openpyxl
wb = openpyxl.load_workbook('/home/russell/Desktop/grumble.xlsx')
ws1 = wb.get_sheet_by_name('Sheet1')
ws2 = wb.get_sheet_by_name('Sheet2')
ws3 = wb.get_sheet_by_name('Sheet3')
S1 = set()
S2 = set()
for row in ws1.iter_rows(min_row=2, max_col=10, max_row=588):
for cell in row:
S1.add(cell.value)
for row in ws1.iter_rows(min_row=2, max_col=16, max_row=3029):
for cell in row:
S2.add(cell.value)
print(list(set(S1) & set(S2)))
我建议您为这些工作表创建两个数据帧以进行比较,并将结果帧写入第三个工作表。有关在openpyxl和Pandas之间转换的更多信息,请参阅