programing

판다들은 공식이 아닌 탁월한 가치를 읽습니다.

linuxpc 2023. 6. 10. 08:31
반응형

판다들은 공식이 아닌 탁월한 가치를 읽습니다.

판다가 공식이 아닌 엑셀의 값만 읽게 할 수 있는 방법이 있습니까?코드를 실행하기 전에 엑셀 파일을 수동으로 저장하지 않으면 의 공식을 NaN으로 읽습니다.저는 팬더의 기본 읽기 엑셀 기능으로 일하고 있을 뿐입니다.

import pandas as pd

df = pd.read_excel(filename, sheetname="Sheet1")

코드를 실행하기 전에 파일에 들어가서 저장한 경우 값이 읽힙니다.하지만 코드를 실행하여 새 시트를 업데이트한 후에 파일을 저장하지 않고 다시 실행하려고 하면 공식을 값만 읽는 것이 아니라 NaN으로 읽힙니다.판다와 함께 탁월한 가치를 읽는 것에 대해 아는 사람이 있습니까?

그것은 이상합니다.판다의 정상적인 행동은 공식이 아닌 읽기 값입니다.엑셀 파일에 문제가 있을 수 있습니다.공식이 다른 파일을 가리키거나 판다가 난으로 보는 값을 반환할 수 있습니다.

첫 번째 경우, 시트를 업데이트해야 하며 판다가 할 수 있는 것은 아무것도 없습니다(단, 계속 읽어보기만 하면).

두 번째 경우에는 read_excel에서 명시적인 nan 값을 설정하여 해결할 수 있습니다.

pd.read_excel(path, sheetname="Sheet1", na_values = [your na identifiers])

첫 번째 사례와 작업을 더 쉽게 하기 위한 해결책으로 xlwings를 사용하여 수동으로 작업을 자동화할 수 있습니다.

import pandas as pd
import xlwings as xl

def df_from_excel(path):
    app = xl.App(visible=False)
    book = app.books.open(path)
    book.save()
    app.kill()
    return pd.read_excel(path)

df = df_from_excel(path to your file)

이러한 수식을 엑셀 파일에 저장하려면 파일을 다른 위치(book.save(다른 위치))에 저장하면 됩니다.그런 다음 임시 파일을 shutil로 제거할 수 있습니다.

이 문제가 발생하여 그래프를 첫 번째 행 아래로 이동하여 문제를 해결했습니다.그래프의 위치가 문제를 일으킬 수 있습니다.

xlrd를 사용하여 값을 읽을 수 있습니다.먼저 엑셀 시트를 새로 고쳐야 합니다. 또한 파이썬으로 값을 자동으로 업데이트합니다.파일 = myxl 아래의 기능을 사용할 수 있습니다.xls

import xlrd
import win32com.client
import os

def refresh_file(file):
    xlapp = win32com.client.DispatchEx("Excel.Application")
    path = os.path.abspath(file)
    wb =  xlapp.Wordbooks.Open(path)
    wb.RefreshAll()
    xlapp.CalculateUntilAsyncqueriesDone()
    wb.save()
    xlapp.Quit()

파일을 새로 고친 후 내용을 읽기 시작할 수 있습니다.

workbook = xlrd.open_workbook(file)
worksheet = workbook.sheet_by_index(0)
for rowid in range(worksheet.nrows):
    row = worksheet.row(rowid)
    for colid, cell in enumerate(row):
        print(cell.value)

당신은 당신이 데이터를 필요로 하는 방법으로 루프할 수 있고 당신이 데이터를 읽는 동안 조건을 넣을 수 있습니다.훨씬 더 많은 유연성

언급URL : https://stackoverflow.com/questions/41722374/pandas-read-excel-values-not-formulas

반응형