【问题标题】:Python: Copy and pasting to specific row and columnPython:复制并粘贴到特定的行和列
【发布时间】:2021-03-05 07:57:32
【问题描述】:

我在 excel 中有 2 个输入文件和 1 个主文件。我想使用python从输入文件中复制值并粘贴到相应行和列的主文件中:

Input file 1 (COPIED)
Col Row extra1 extra2 value

A    70                6.1
B    87                5.0
G    90                4.4

Input file 2 (COPIED)
Col Row extra1 extra2 value

C    10                0.9
F    17                3.3
G    20                1.1
Main file (PASTED)
Col Row value
A   70   6.1
B   87   5.0 
C   10   0.9
F   17   3.3
G   20   1.1
G   90   4.4

row 和 col 列已经被填满了。 任何人对如何执行此操作有任何解决方案或见解?提前谢谢你

【问题讨论】:

    标签: python excel pandas list dataframe


    【解决方案1】:

    使用 openpyxl 在两个不同的工作簿之间复制列可以如下完成:

    import openpyxl
    
    wb1 = openpyxl.load_workbook('B.xlsx')
    ws1 = wb1.active
    
    wb2 = openpyxl.load_workbook('E.xlsx')
    ws2 = wb2.active
    
    for src, dst in zip(ws1['B:B'], ws2['AN:AN']):
        dst.value = src.value
    
    wb2.save('E.xlsx') 
    

    对于一系列列,以下将起作用:

    import openpyxl
    
    wb1 = openpyxl.load_workbook('B.xlsx')
    ws1 = wb1.active
    
    wb2 = openpyxl.load_workbook('E.xlsx')
    ws2 = wb2.active
    
    for src, dst in zip(ws1['A:I'], ws2['AN:AV']):
        for cell_src, cell_dst in zip(src, dst):
            cell_dst.value = cell_src.value
    
    wb2.save('E.xlsx') 
    

    【讨论】:

      【解决方案2】:

      如果你的主文件是空的

      df1=pd.DataFrame({"Col":[1,2,3],"Row":[2,3,4],"value":[6,5,7],"ree":[0,0,0]})
      
      
          Col Row value ree
      0   1   2   6   0
      1   2   3   5   0
      2   3   4   7   0
      
      df2=pd.DataFrame({"Col":[9,8,0],"Row":[6,4,22],"value":[26,55,27]})
      
      
          Col Row value ree
      0   1   2   6   0
      1   2   3   5   0
      2   3   4   7   0
      
      df1=df1[["Col","Row","value"]]
      df2=df2[["Col","Row","value"]]
      
      main=pd.concat((df1,df2))
      
          Col Row value
      0   1   2   6
      1   2   3   5
      2   3   4   7
      0   9   6   26
      1   8   4   55
      2   0   22  27
      

      因此在此之后您可以创建一个主文件或将其保存在现有的 csv 中 如果 main 为空,则此方法有效,如果已填充,则按上述方式连接。

      【讨论】:

        猜你喜欢
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        • 2013-11-27
        相关资源
        最近更新 更多