首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:无法将系列转换为<class 'int'> python

TypeError:无法将系列转换为<class 'int'> python
EN

Stack Overflow用户
提问于 2022-05-02 17:49:08
回答 1查看 1.1K关注 0票数 0

在这个函数中,我试图将一个串联对象转换为一个int对象。但是,当我尝试它时,我总是得到这个错误消息TypeError: cannot convert the series to <class 'int'>。我已经尝试过使用.astype(int),但结果是一样的。有人能帮我吗?

Ps :当我在"sla()“函数之外执行下面的函数时,它工作得很好

这是将串联类型转换为int类型的函数:

代码语言:javascript
运行
复制
def current_user_section(df,ID):    
    current_user = df.loc[df["ID"] == ID]          
    section = int(current_user["SECTION"])
    return section

投入/产出:

代码语言:javascript
运行
复制
x = current_user_section(users_df,"5DBEF04B")
print(x)
113

函数,其中调用"current_user_section“:

代码语言:javascript
运行
复制
def sla(path):
  file_with_extension = os.path.split(path)[1] # separa o file path em head e tail, armazenando apenas o tail na variavel
  file_name = os.path.splitext(file_with_extension)[0] # retira a extensao/tipo do arquivo do tail, deixando apenas o nome do arquivo
  print("Parabens, voce concluiu o tutorial ",file_name,"\n")  
  section = current_user_data(users_df,ID)[1]
  videos = videos_to_watch(section,ID)
  if is_list_empty(videos,section,ID) == True: # se tiver vazia vai pedir o ID de novo
      print("Nao ha novos tutoriais disponiveis.")
      return None,None
  else:      
    print("Deseja continuar assistir a mais um tutorial?\n")
    c_s = (input("Digite (s) para sim e (n) para nao: ")).lower()
    return c_s,videos

输出:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "d:\Users\raulc\Documents\AMBIENTES\run_videos.py", line 105, in <module>
    c_s = sla(path)[0]
  File "d:\Users\raulc\Documents\AMBIENTES\run_videos.py", line 71, in sla
    section = current_user_section(users_df,ID)
  File "d:\Users\raulc\Documents\AMBIENTES\mercedes.py", line 131, in current_user_section
    section = int(current_user["SECTION"])
  File "D:\Users\raulc\Documents\AMBIENTES\raulenv\lib\site-packages\pandas\core\series.py", line 191, in wrapper
    raise TypeError(f"cannot convert the series to {converter}")
TypeError: cannot convert the series to <class 'int'>
EN

Stack Overflow用户

发布于 2022-05-02 17:56:24

如果要将Series转换为int,请使用:

代码语言:javascript
运行
复制
def current_user_section(df,ID):
    current_user = df.loc[df["ID"] == ID]
    section = current_user["SECTION"].astype(int)
    return section

但也许你想:

代码语言:javascript
运行
复制
def current_user_section(df,ID):
    current_user = df.loc[df["ID"] == ID]
    section = int(current_user["SECTION"].squeeze())
    return section
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72090455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档