python 3.7 openpyxl 엑셀 셀 에 데이터 인 스 턴 스 를 기록 합 니 다.

원래 저 는 여러 개의 셀 을 선택 하여 같은 sheet 의 다른 위치 로 복사 하려 고 했 습 니 다.많은 자 료 를 찾 았 지만 찾 지 못 했 습 니 다.지금 은 이런 방법 밖 에 없습니다.만약 에 큰 사람 이 보면 보충 적 으로 가르침 을 청 하 는 것 을 환영 합 니 다.

# encoding:utf-8
import pandas as pd
import openpyxl
xl = pd.read_excel(r"E:\55\CRM     -10001741-1570416265044.xls")
xl.to_excel(r"E:\55\crms.xlsx")
wk = openpyxl.load_workbook(r"E:\55\crms.xlsx") #       excel
wk_name = wk.sheetnames
wk_sheet = wk[wk_name[0]]
 
wk_sheet.cell(row=2,column=2,value='  ') #    ,     “  ”  
wk_sheet.cell(row=2,column=3,value='  ')
wk_sheet.cell(row=2,column=4,value='    ')
wk_sheet.cell(row=2,column=5,value='    ')
 
wk.save(r"E:\55\s.xlsx")
추가 지식:[openpyxl]python 에서 Excel 을 기록 하고 한 열 또는 한 줄 을 기록 합 니 다.(엑셀 에서 label 과 feature 의 대응 하 는 형식 방법 을 읽 고 한 줄 또는 한 열 을 삽입 하 는 방법 이 실 현 됩 니 다)
머리말
최근 expansion of datset 을 만 들 고 있 기 때문에 확 장 된 dataset 를 엑셀 에 기록 해 야 합 니 다.
나 는 이미 행렬 연산 을 모두 끝 냈 고,최종 출력 은 두 개의 출력 labels 와 features 이다.
스스로 다음 과 같은 형식 으로 정리 하 다.

label = [[0],
     [1],
     [2],
     [3]
     ]
feature = [
      [0.1, 0.2, 0.3, 0.4, 0.5],
      [0.11, 0.21, 0.31, 0.41, 0.51],
      [0.6, 0.7, 0.8, 0.9, 1.00],
      [1.1, 1.2, 1.3, 1.4, 1.5],
      ]
해결 방안
먼저 python 이 가 져 온 xlrd xlrd 등 가방 으로 조작 하려 고 했 는데 정말 안 될 것 같 아 요.
생각 을 바 꾸 고 제3자 패키지 openpyxl 로 조작 합 니 다.
pip install openpyxl
공식 문서 여기 있 습 니 다.
https://openpyxl.readthedocs.io/en/stable/index.html
코드
잔말 말고 show you my code

# coding=utf-8
from openpyxl import Workbook
import numpy as np

wb = Workbook()

ws = wb.create_sheet("che")
label = [[0],
     [1],
     [2],
     [3]
     ]
feature = [
      [0.1, 0.2, 0.3, 0.4, 0.5],
      [0.11, 0.21, 0.31, 0.41, 0.51],
      [0.6, 0.7, 0.8, 0.9, 1.00],
      [1.1, 1.2, 1.3, 1.4, 1.5],
      ]
#          numpy               numpy      ,       
label = np.array(label)
feature = np.array(feature)

label_input = []
for l in range(len(label)):
  label_input.append(label[l][0])

ws.append(label_input)
for f in range(len(feature[0])):

  ws.append(feature[:, f].tolist())
wb.save("chehongshu.xlsx")
결 과 는 excel 을 생 성 합 니 다.마지막 결 과 는 다음 그림 과 같 습 니 다.

총결산
openpyxl 가방 은 정말 편리 합 니 다.쓰기 에 있어 서 하나의 LIST 를 만들어 append 를 진행 하면 됩 니 다.엑셀 이 비어 있 으 면 append 는 첫 줄 부터 점점 증가 합 니 다.뉴스.append()작업 은 한 줄 을 기록 하 는 것 과 같 습 니 다.엑셀 이 데이터 가 있 을 때 기록 작업 은 데이터 가 없 는 줄 부터 기록 하 는 것 으로 이해 할 수 있 습 니 다.여기 서도 Insert 를 사용 하려 고 했 는데 하나의 조건 을 무시 했다.즉,insert 는 For example to insert a row at 7(before the existing row 7)이라는 전제 조건 이 있 습 니 다.삽입 하기 전에 데이터 의 크기 가 삽입 할 줄 이나 열 보다 크다 는 뜻 입 니 다.즉,삽입 은 안에 만 꽂 을 수 있 고 가장자리 에 꽂 을 수 없다 는 뜻 입 니 다.
핵심 참조 코드 삽입

for col in range(len(label)):

  print col
  ws.insert_cols(col+1)

  for index, row in enumerate(ws.rows):
    #print row
    
     if index == 0:
      #row[col+1].value = label[col][0]
      print "label"
      print label[col]
    else:
      print "feature"
      print feature[col][index-1]
      #row[col+1].value = feature[col][index-1]
읽 기 코드

def create_data_expansion(path, sheet):
  data_init = pd.read_excel(path, sheet)
  # print data_init
  data_df = pd.DataFrame(data_init)
  print data_df
  data_df_transponse = data_df.T
  label_expansion = np.array(data_df_transponse.index)
  label_expansion_l = []
  for l in range(len(label_expansion)):
    label_expansion_l.append([l])
  feature_expansion = np.array(data_df_transponse)
  label_expansion = np.array(label_expansion_l)

  return label_expansion, feature_expansion

if __name__ == "__main__":
  path_name = "excel_demo.xlsx"
  sheet_name = "11"
  label, feature = create_data_expansion(path_name, sheet_name)
  print label
  print feature
결과:

이상 의 python 3.7 openpyxl 은 엑셀 셀 에 데이터 인 스 턴 스 를 기록 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기