我有两列,我试图返回两列中两个相邻单元格相同的行的总数。我正在尝试遍历两列的每一行,并将第一列中的每个项目与第二列中的相邻项目进行比较 即
A | B
1 | 1
2 | 3
4 | 4
返回2,表示有2对相同。
到目前为止,我的两列是Q和R:
import openpyxl
excel_document = openpyxl.load_workbook('example.xlsx')
sheet = excel_document.get_sheet_by_name('Page 1')
created_closed = sheet['Q2':'R1844']
count = 0
for cell in column:
if Q[2] == R[2]: #something along the lines of this
count += 1
答案 0 :(得分:2)
import pandas as pd
df = pd.read_excel('example.xlsx')
df = df[df['A'] == df['B']]
print (df.shape[0])
答案 1 :(得分:1)
想到的答案是:
count = created_closed[created_closed['Q']==created_closed['R']].shape[0]
不需要for
循环,因为熊猫可以解决这个问题。
答案 2 :(得分:0)
A-尝试使用numpy
和pandas
。
1-查找所有相交点:这将返回一个数组,其中包含两列中相同的元素
from pandas import read_excel
import numpy as np
df = read_excel('excel_data.xlsx', names=['A','B'], header=None)
np.intersect1d(df['A'], df['B'])
2-现在计算数组的长度
B-读取每个column
并保存到两个单独的dictionary
,其中key
为position
,而value
为value
position
。比较两个dictionaries
并跟踪匹配情况。
类似的东西,我现在正在旅行,所以我无法测试。
count = 0
col1 = {1:'a', 2:'b', 3:'c'}
col2= {1:'g', 2:'b', 3:'v'}
for key in col1.keys():
if col1[key] == col2[key]:
count = count + 1