如何使用Python比较excel中的相邻单元格?

时间:2018-08-08 19:50:01

标签: python excel openpyxl

我有两列,我试图返回两列中两个相邻单元格相同的行的总数。我正在尝试遍历两列的每一行,并将第一列中的每个项目与第二列中的相邻项目进行比较 即

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

3 个答案:

答案 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-尝试使用numpypandas

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,其中keyposition,而valuevalue 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