首页 > 编程问答 >FutureWarning:设置不兼容 dtype 的项目已被弃用,并将在 pandas 的未来错误中引发。价值

FutureWarning:设置不兼容 dtype 的项目已被弃用,并将在 pandas 的未来错误中引发。价值

时间:2024-08-05 16:29:50浏览次数:13  
标签:python pandas dtype future-warning

正如类似问题中提到的,我尝试转换为对象拳头,然后将我的列转换为字符串。然而,即使在这一步中,我也会遇到相同的未来警告错误。列数据类型首先是“对象”。所以再次将其更改为 object 是不可行的。有趣的是,当我想将数据更改为 sting 时,我收到此警告,表明列类型为 int64,我在 df.info() .

import pandas as pd
import numpy as np
pd.set_option('display.max_columns', None)
GTE=pd.read_excel(r'example.xlsx',sheet_name='Example')

GTE.iloc[:,0:17]=GTE.iloc[:,0:17].astype(object).astype(str)
# GTE.iloc[:,0:17]=GTE.iloc[:,0:17].replace(np.nan,'NA')

警告中看不到任何 int64 dtype:

dtype: object' has dtype与 int64 不兼容,请明确 首先转换为兼容的数据类型。

dtype: object' 的数据类型与 float64 不兼容,请明确 首先转换为兼容的数据类型。


该错误信息表明你正试图将一个 NumPy int64 float64 对象赋值给一个数据类型为 object 的 Pandas Series 中的切片。尽管你已经尝试通过 astype(object) 将 DataFrame 切片转换为 object 类型,但这可能无法解决问题,因为你的数据中可能存在混合类型。

以下是一个解决此问题的分步指南:

  1. 识别问题列: FutureWarning 信息并未指明是哪一列导致了问题。首先需要识别出这些列。可以使用以下代码迭代 DataFrame 中的所有列并打印出数据类型不是 object 的列:
for col in GTE.columns[:17]:
    if GTE[col].dtype != object:
        print(f"列 '{col}' 的数据类型为: {GTE[col].dtype}")
  1. 处理混合类型: 识别出问题列后,需要检查这些列中的数据类型。如果列中同时包含数字( int float )和非数字值,则需要确定如何处理这些混合类型。
  2. 转换为字符串: 如果希望将所有值都视为文本,可以将这些列转换为字符串类型:

    python GTE[col] = GTE[col].astype(str)

  3. 填充缺失值: 如果列中的数字值很重要,而你希望保留它们,则可以先用占位符值(例如 -1 'NA' )替换非数字值,然后将列转换为数字类型:

    python GTE[col] = pd.to_numeric(GTE[col], errors='coerce') GTE[col] = GTE[col].fillna(-1) # 或 GTE[col].fillna('NA')

  4. 再次应用你的代码: 完成以上步骤后,再次运行你的代码:

GTE.iloc[:,0:17]=GTE.iloc[:,0:17].astype(str)

其他建议:

  • 尝试使用 pd.read_excel() 函数的 converters 参数,在读取 Excel 文件时直接将特定列转换为所需的数据类型。
  • 使用 df.info() 检查 DataFrame 的数据类型,确保所有列都已转换为预期的类型。

通过仔细检查和处理数据中的混合类型,你可以解决 FutureWarning 并确保你的代码在未来的 Pandas 版本中也能正常工作。

标签:python,pandas,dtype,future-warning
From: 78833501

相关文章

  • 如何将 *args 参数作为字符串传递给 Python 函数
    我正在使用pytubefix制作一个Youtube下载器。API允许我编写如下代码:YouTube(url).streams.filter(progressive=True)但是假设我有一个字符串存储在像args="progressive=True"这样的变量中,我如何使用args字符串来调用函数,就像......
  • Python Telegram Bot 从数据库获取数据时出错
    我正在开发用于管理企业用途任务的电报机器人。团队负责人注册他的公司并获得唯一的ID,然后可以分配任务。问题是,当团队负责人分配任务时,他可以使用/viewtasks访问它们。但是,当员工尝试查看任务时,它会打印出“错误。您尚未注册”。似乎无法检索与用户关联的company_id,即使......
  • 在 Glue 作业中使用 python3+ 创建 CloudFront 签名 URL
    是否可以使用python3+为GlueJob中S3文件中的一个特定文件创建具有一定时间限制的CloudFront签名URL?我看到可以在Lambda中做到这一点,但在Python文档中找不到任何内容,特别是胶水工作。任何人都可以提供一些提示吗?defload_private_key(key_path):withopen(......
  • 【Python学习手册(第四版)】学习笔记14-迭代器和列表解析(一)
    个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。本文主要以通俗易懂的语言介绍迭代器(文件迭代、手动迭代iter和next等),列表解析式包括基础知识包括写法、文件上使用列表解析、扩展列表解析语法等,对列表解析不懂的同学着重推荐......
  • 如何获取部署在 Azure 应用服务上并通过 Microsoft 身份提供商进行身份验证的 Python
    我使用PythonDash包构建了一个Web应用程序,并将该应用程序部署在Azure应用服务上。Web应用程序当前通过Azure门户的应用程序服务使用Microsoft身份提供程序进行身份验证。但是如何获取登录用户的详细信息呢?在本地运行时如何验证我的Web应用程序?我当前的登录流......
  • 使用 Python 打印此图案
    1010101010101010使用python打印此我已经尝试过defprint_pattern(rows):foriinrange(rows):start_char='1'ifi%2==0else'0'pattern=''.join(start_charifj%2==0else('0'ifs......
  • python discord bot nextcord 斜线命令 更改语言
    我想根据用户的不和谐语言更改斜杠命令的名称。如果语言是韩语/서버如果语言是英语/服务器像这样。我可以使用ctx.locale更改里面的内容,但我也想更改名称和描述。我应该怎么办?当我问ChatGPT时,他们说的很奇怪,谷歌上也没有任何信息。但是有一个机器人可以根据语言......
  • 学习Python的书籍推荐--《Python编程从入门到实践》
    版权信息:书名:Python编程:从入门到实践(第3版)作者:[美]埃里克·马瑟斯(EricMatthes)译者:袁国忠评价:1.北京邮电大学副教授陈光老师是这样评价的:    编程教学之道,一是重在实践,二是循序渐进一一通过巧妙的实战项目,激发和保持学习的热情,让学习渐入佳境。在这两方......
  • 我可以将 Python 与 javascript 结合起来用于网站或应用程序吗
    我不知道如果j添加Python和javascript可以吗我尝试过。但决定在继续之前询问一下是否可以继续但是如果我只使用javascript还是只使用python会更好吗?我只需要建议或答案将Python与Javascript结合用于网站或应用程序不仅完全可行,而且也是一种非常常见的做法!二者......
  • Python 网络抓取与请求和美丽的汤被需要 javascript 阻止
    我正在尝试从网站上抓取文本。我使用简单的代码:requests.get(url_here)。我的代码直到最近才有效。现在,当我使用请求时,我收到一条消息,而不是获取网站的文本:“该网站需要启用JavaScript!您使用的浏览器不支持JavaScript,或者已关闭JavaScript。“我已验证我的浏览器确实......