如何搜索选定的列并找到匹配的值



从一个工作表的输入xlxs中,我正在收集挖掘数据并在同一工作簿中创建填充其他工作表。工作表包含多个列,并且在每个工作表上各不相同,因此没有固定数量的列。我想搜索选择列与标题=用户名,匹配值和复制创建一个新的列与共同的匹配值。例如:

<表类> UserE UserF UserG UserH UserI tbody><<tr>Group1Group2GroupAGroup1GroupCGroupAGroupAGroup2GroupAGroupAGroup3GroupCGroupBGroup2Group5Group2GroupFGroupFGroupGGroup2

您可以使用下面的代码完成此操作。请注意,程序将input.xlsx文件Sheet1tab读入数据帧,假设第一行是标题,然后找到每列中常见的文本,并在右侧添加一列(最后一列之后的一个单元格),其中包含单词match,然后将常见字符串一个放在另一个下面。它不会触摸/替换其他标签可能出现在excel表。如果没有公共字符串,它将仅以match作为列标题,并且下面没有数据。

import pandas as pd
from openpyxl import load_workbook
# Read data
df = pd.read_excel('input.xlsx', sheet_name='Sheet1')
#For each column, find items that are common across all those columns
for i in range(df.shape[1]):
if i == 0:
match = set(df.iloc[:,i])
else:
match = match & set(df.iloc[:,i])
#Open using load_workbook so that no data is overwritten        
wb=load_workbook('input.xlsx')
ws=wb['Sheet1']
ws.cell(row=1,column=df.shape[1]+1).value = "match" #Add header row
for r_idx in range(len(match)):  #Add each item to last column below "match"
ws.cell(row=r_idx+2, column=df.shape[1]+1).value=list(match)[r_idx]
#for c_idex, col in enumerate()
wb.save('input.xlsx')

相关内容

  • 没有找到相关文章

最新更新