python - 熊猫无法使用公式从单元格中获取值
问题描述
基本上是标题。
我一直在网上研究这个问题,因为我认为我做错了什么,但显然,我的代码应该可以正常工作。我会准确地告诉我我正在尝试做什么以及出了什么问题。
我的代码从 Google Drive 下载 Excel 表,从某些列中获取一些信息,更改一些内容,然后将其上传回驱动器。这一切都很好,但是当代码试图获取它应该得到的信息时,它没有;当单元格上有公式时,由列组成的数据框是带有“nan”的字段。单元格可以有最简单的公式,pandas 不会读取它。
我怀疑这与我从驱动器下载它的事实有关,因为当我打开通过代码下载的工作表并手动保存时,一切正常,但我找不到任何解决方法. 如果有人能准确地指出正在发生的事情,或者我可以做些什么来解决它,那就太好了。
这是下载工作表的代码:
def criar(self):
SCOPES='https://www.googleapis.com/auth/drive'
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'H:\Meu Drive\DriveAPI\key.json', SCOPES)
# Builda o objeto service
service = build('drive', 'v3', credentials=credentials)
#Essa parte vai definir os parametros do request à api do drive
file_metadata = {'name': 'testes.xlsm','parents':[parentid]}
file_name='testes.xlsm'
mime_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
media = MediaFileUpload('H:/Meu Drive/Excell/{0}'.format(file_name),mimetype=mime_type)
#faz a criação do arquivo no drive
file = service.files().create(body=file_metadata,
media_body=media,
fields='id').execute()
id_file=file['id']
def updatar(self):
SCOPES='https://www.googleapis.com/auth/drive'
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'.\key.json', SCOPES)
# Builda o objeto service
service = build('drive', 'v3', credentials=credentials)
#Essa parte vai definir os parametros do request à api do drive
file_metadata = {'name': 'test.xlsm','parents':[parentid]}
file_name='test.xlsm'
mime_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
media = MediaFileUpload('./{0}'.format(file_name),mimetype=mime_type)
#updata o arquivo no drive
file = service.files().update(media_body=media,
addParents=parentid,
fileId=file_id).execute()
#return id_file
这是从列中获取信息的代码:
marcacoeslimite1 = 12
marcacoeslimite2 = 24
marcacoeslimite3 = 36
file_loc="./test.xlsm"
marcacoes = pd.read_excel(file_loc, sheet_name="MONITORAMENTO", index_col=None, na_values=['NA'], usecols ="AN")
coddosclientes = pd.read_excel(file_loc, sheet_name="MONITORAMENTO", index_col=None, na_values=['NA'], usecols ="D")
cidadedosclientes = pd.read_excel(file_loc, sheet_name="MONITORAMENTO", index_col=None, na_values=['NA'], usecols ="E")
telclientes = pd.read_excel(file_loc, sheet_name="MONITORAMENTO", index_col=None, na_values=['NA'], usecols = "AF")
nomedosclientes = pd.read_excel(file_loc, sheet_name="MONITORAMENTO", index_col=None, na_values=['NA'], usecols ="B")
enderecodocliente = pd.read_excel(file_loc, sheet_name="MONITORAMENTO", index_col=None, na_values=['NA'], usecols ="AK")
x=0
while x < len(marcacoes):
if (marcacoes.iloc[x][0] ==0):
codigo = coddosclientes.iloc[x][0]
cidade = cidadedosclientes.iloc[x][0]
codigo = coddosclientes.iloc[x][0]
telefone = telclientes.iloc[x][0]
nomedocliente = nomedosclientes.iloc[x][0]
loc = enderecodocliente.iloc[x][0]
解决方案
推荐阅读
- python - 拆分数据框中的多列与特定列配对
- typescript - Typescript 通过方法调用从构造函数设置类变量
- google-apps-script - 在 Google 表格上自动生成序列号
- c++ - C ++ 11 GCC 4快速优化不在堆栈中存储抽象类的实现类
- excel - SaveAs 方法将工作簿保存为 ReadOnly
- docker - Docker - 更新容器的工作流程
- function - 为什么编译器无法识别库的某些功能?
- python - 如何在 FastAPI 中进行多处理
- html - 在 Blazor 中使用离线地图提供程序(OpenStreetMap 或其他免费地图)
- pyspark - 如何在 pyspark 数据帧上执行逐行数据规范化?