lfsix 2022-12-31 14:38 采纳率: 25%
浏览 36

如何用Python实现上面excel函数的功能

img

=IF(COUNTIF(数据A!A2:F2,数据B!A2)+COUNTIF(数据A!A2:F2,数据B!B2)+COUNTIF(数据A!A2:F2,数据B!C2)+COUNTIF(数据A!A2:F2,数据B!D2)+COUNTIF(数据A!A2:F2,数据B!E2)=5,G2=G2+1,)

如何用Python实现上面excel函数的功能

  • 写回答

2条回答 默认 最新

  • lfsix 2023-01-02 17:08
    关注
    
    import pandas as pd
    import openpyxl as op
    data_a = pd.read_excel('a1.xlsx')
    data_b = pd.read_excel('B1.xlsx')
    
    
    #count_if函数 
    def countif(line, base1, base2, base3, base4, count_column):
       line['cnt_if'] = sum(line[count_column] == base1 )+sum( line[count_column] == base2)+sum( line[count_column] == base3)+sum( line[count_column] == base4)
       return line
    
    #将count_if应用到每一行
    wb = op.load_workbook( "B1.xlsx" )
    sh=wb[ "Sheet1" ]
    for item in data_b.index:  #获取行坐标
       count = 0 # 统计置零
       for i in range( 1,5 ):  #获取列坐标
          col_name ="Y"+str(i) #生成列名
          data_loc = data_b.loc[item, col_name] #定位数据坐标
          # 给对比参数赋值
          if col_name == 'Y1':
             Y1=data_loc
          elif col_name == 'Y2':
             Y2=data_loc
          elif col_name == 'Y3':
             Y3=data_loc
          else:
             Y4=data_loc
       # 数据对比
       new_df = data_a.apply(countif, axis=1, args=( Y1, Y2, Y3, Y4, ['X1', 'X2', 'X3', 'X4','X5'] ))
       count_tmp = sum(new_df['cnt_if'] == 4) # 统计每行相同数出现 4次的数量
       if count_tmp > 0 :
          count  = count+count_tmp
       print(count) #----
       # 结果写入excel
       sh.cell( item+2,7,count ) #写入表指定单元格
    wb.save("B1.xlsx")        #写入excel文件
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月31日

悬赏问题

  • ¥15 C#视频播放器的原码,有的发一
  • ¥15 用FDTD计算并提取光栅结构的正负一级衍射光的光功率
  • ¥30 AVL fire DVI中的Design Explorer里面的Run的Status为什么总是Terminated?哪里出问题了?需要修改哪里?
  • ¥15 有二开IOT平台code的来搞钱了。
  • ¥15 求lingo语言编程以下内容
  • ¥15 cannot import name '_MissingValues' from 'sklearn.utils._param_validation'引用smoke
  • ¥15 求PHP跨站免登录技术
  • ¥15 AVL fire DVI中的Design Explorer里面的Objectives /Constraints的scale应该怎么设置
  • ¥15 qml如何绘制三维笛卡尔坐标系并向其中添加折线?
  • ¥15 咨询一个PYTHON的问题