Python Pandas - Excel 시트의 특정 열에 쓰는 방법
팬더를 이용한 엑셀 시트에 새로운 값을 적어서 업데이트하는데 어려움을 겪고 있습니다.MySheet1.xlsx.의 값을 읽는 기존 프레임 df1이 이미 있으므로 새 데이터 프레임이거나 기존 데이터 프레임을 복사하여 덮어쓸 방법이 필요합니다.
스프레드시트의 형식은 다음과 같습니다.
파이썬 목록이 있습니다. values_list = [12.34, 17.56, 12.45].Col_C 헤더 아래에 리스트 값을 수직으로 삽입하는 것이 제 목표입니다.현재 값을 보존하지 않고 전체 데이터 프레임을 수평으로 덮어쓰는 중입니다.
df2 = pd.DataFrame({'Col_C': values_list})
writer = pd.ExcelWriter('excelfile.xlsx', engine='xlsxwriter')
df2.to_excel(writer, sheet_name='MySheet1')
workbook = writer.book
worksheet = writer.sheets['MySheet1']
어떻게 이 최종 결과를 얻을 수 있습니까?감사해요!
아래에서는 Panda와 openpyxl 모듈(OpenpyxlDocs 링크)을 사용하여 기존 .xlsx 워크북을 수정하는 방법에 대해 완전히 재현 가능한 예를 제공합니다.
먼저, 시연을 위해 test.xlsx:라는 워크북을 만듭니다.
from openpyxl import load_workbook
import pandas as pd
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
wb = writer.book
df = pd.DataFrame({'Col_A': [1,2,3,4],
'Col_B': [5,6,7,8],
'Col_C': [0,0,0,0],
'Col_D': [13,14,15,16]})
df.to_excel(writer, index=False)
wb.save('test.xlsx')
다음은 이 시점의 예상 출력입니다.
두 번째 파트에서는 기존 워크북('test')을 로드합니다.xlsx')를 선택하고 다른 데이터로 세 번째 열을 수정합니다.
from openpyxl import load_workbook
import pandas as pd
df_new = pd.DataFrame({'Col_C': [9, 10, 11, 12]})
wb = load_workbook('test.xlsx')
ws = wb['Sheet1']
for index, row in df_new.iterrows():
cell = 'C%d' % (index + 2)
ws[cell] = row[0]
wb.save('test.xlsx')
마지막에 표시되는 예상 출력은 다음과 같습니다.
제 생각에 가장 쉬운 해결책은 엑셀을 팬더의 데이터 프레임으로 읽고 수정하여 엑셀로 작성하는 것입니다.예를 들어 다음과 같습니다.
댓글:
PD로서 판다를 수입합니다.Excel 시트를 호출된 팬더 데이터 프레임으로 읽습니다.목록 형식일 수 있는 데이터를 가져와 원하는 열에 할당합니다.(길이가 동일한지 확인하기만 하면 됩니다.데이터 프레임을 Excel로 저장하거나 이전 Excel을 재정의하거나 새 Excel을 만듭니다.
코드:
import pandas as pd
ExcelDataInPandasDataFrame = pd.read_excel("./YourExcel.xlsx")
YourDataInAList = [12.34,17.56,12.45]
ExcelDataInPandasDataFrame ["Col_C"] = YourDataInAList
ExcelDataInPandasDataFrame .to_excel("./YourNewExcel.xlsx",index=False)
언급URL : https://stackoverflow.com/questions/49681392/python-pandas-how-to-write-in-a-specific-column-in-an-excel-sheet
'sourcetip' 카테고리의 다른 글
MySQL 외부 키 오류 1005 errno 150 기본 키를 외부 키로 지정 (0) | 2023.09.05 |
---|---|
어떻게 설정합니까?New-WebAppPool 사용 시 NET Framework 버전은 무엇입니까? (0) | 2023.08.26 |
CSS에서 확인란의 테두리 스타일을 변경하는 방법은 무엇입니까? (0) | 2023.08.26 |
감사 테이블에 대한 트리거 생성 (0) | 2023.08.26 |
사용자 지정 주석 @Foo가 있는 모든 콩을 어떻게 찾을 수 있습니까? (0) | 2023.08.26 |