Pandas告警UserWarning:pandas only supports SQLAlchemy connectable处理方式

 更新时间:2024年02月13日 11:03:14   作者:smart_cat  
这篇文章主要给大家介绍了关于Pandas告警UserWarning:pandas only supports SQLAlchemy connectable的处理方式,文中还分享了pandas还有哪些userwarning,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、报错信息

使用老的书写方式从数据库导入数据到pandas, 会打出一条warning信息:

UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.

二、老的书写方式

老的书写方式为:

import pymysql
import pandas as pd

db_host = 'localhost'
user = 'root'
passwd = '123456'
db = 'mytestdb'

conn = pymysql.connect(host=db_host,
                       user=user,
                       passwd=passwd,
                       db=db,
                       charset='utf8')

sql = 'SELECT * FROM students'

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_sql(sql, conn)
print(df)

conn.close()

三、新的书写方式

按照提示,推荐使用SQLAlchemy,需要先安装SQLAlchemy库:

pip install sqlalchemy

新版本的pandas库中con参数使用sqlalchemy库创建的create_engine对象 。创建create_engine对象(格式类似于URL地址)

from sqlalchemy import create_engine
import pandas as pd

MYSQL_HOST = 'localhost'
MYSQL_PORT = '3306'
MYSQL_USER = 'root'
MYSQL_PASSWORD = '123456'
MYSQL_DB = 'mytestdb'

engine = create_engine('mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8'
                           % (MYSQL_USER, MYSQL_PASSWORD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB))

sql = 'SELECT * FROM students'

df = pd.read_sql(sql, engine)

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
print(df)

附:pandas还有哪些userwarning

当使用Pandas时,可能会遇到一些UserWarning。以下是一些可能会出现的UserWarning:

  1. Data Validation extension is not supported and will be removed: 这个警告来自openpyxl,当使用pandas读取Excel文件时,会出现这个警告。这个警告是关于一些规范的扩展,不影响数据的读取 1。
  2. pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.: 当使用老的书写方式从数据库导入数据到pandas时,会出现这个警告。这个警告是关于使用SQLAlchemy连接数据库的建议 2。
  3. Pandas doesn’t allow columns to be created via a new attribute name: 当继承Pandas DataFrame时,如果通过新属性名创建列,则会出现这个警告 3。

以下是每种情况的代码示例:Data Validation extension is not supported and will be removed: 这个警告通常与Excel文件的读取有关,你可以使用openpyxl库的warnings模块来忽略这个警告,示例如下:

import openpyxl
import warnings
from openpyxl.utils.exceptions import DataValidationError

# 忽略DataValidationError的警告
warnings.simplefilter("ignore", category=DataValidationError)# 使用Pandas读取Excel文件
df = pd.read_excel('your_excel_file.xlsx')

pandas only supports SQLAlchemy connectable (engine/connection): 这个警告建议使用SQLAlchemy连接数据库。示例代码如下:

from sqlalchemy import create_engine

# 创建一个SQLAlchemy数据库连接
engine = create_engine('database_connection_string')# 使用SQLAlchemy连接从数据库导入数据到Pandas DataFrame
df = pd.read_sql_query('SELECT * FROM your_table', con=engine)

Pandas doesn't allow columns to be created via a new attribute name: 这个警告通常在继承Pandas DataFrame时出现,你应该避免通过新属性名创建列,而是使用标准的Pandas方式来创建列。示例代码如下:

import pandas as pd

# 创建一个空的DataFrame
df = pd.DataFrame()

# 使用标准方式创建列
df['column_name'] = [1, 2, 3, 4, 5]

# 避免使用新属性名创建列
# df.new_column = [6, 7, 8, 9, 10]  # 这会触发警告

这些示例代码可以帮助你处理这些Pandas UserWarning,并采取适当的措施以避免潜在的问题。

总结 

到此这篇关于Pandas告警UserWarning:pandas only supports SQLAlchemy connectable处理方式的文章就介绍到这了,更多相关Pandas告警UserWarning内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Numpy实现修改数组形状

    Python Numpy实现修改数组形状

    NumPy(Numerical Python)是Python中用于处理数组和矩阵的重要库,它提供了丰富的功能,用于科学计算,本文主要介绍了如何使用NumPy提供的方法来改变数组的形状,感兴趣的可以了解下
    2023-11-11
  • Python创建文件夹与文件的快捷方法

    Python创建文件夹与文件的快捷方法

    这篇文章主要给大家介绍了关于Python创建文件夹与文件的快捷方法以及批量创建文件夹的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用OpenCV校准鱼眼镜头的方法

    使用OpenCV校准鱼眼镜头的方法

    这篇文章主要介绍了使用OpenCV校准鱼眼镜头的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python获取当前脚本文件夹(Script)的绝对路径方法代码

    Python获取当前脚本文件夹(Script)的绝对路径方法代码

    在本篇文章中小编给各位整理了关于Python获取当前脚本文件夹(Script)的绝对路径实例代码内容,有需要的朋友们学习下。
    2019-08-08
  • 使用python matploblib库绘制准确率,损失率折线图

    使用python matploblib库绘制准确率,损失率折线图

    这篇文章主要介绍了使用python matploblib库绘制准确率,损失率折线图,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 实例讲解python中的序列化知识点

    实例讲解python中的序列化知识点

    本篇文章通过代码实例给大家详细分享了关于python中的序列化知识点内容,有兴趣的朋友们可以学习下。
    2018-10-10
  • Python中Requests POST请求解读

    Python中Requests POST请求解读

    POST请求是HTTP协议中一种用于提交数据的方法,与GET请求获取数据不同,POST常用于提交表单数据和上传文件,本文介绍了如何使用Python的Requests包发送POST请求,包括基本的表单数据提交、发送JSON格式数据,以及如何处理响应状态码和错误
    2024-11-11
  • 使用Python处理BAM的方法

    使用Python处理BAM的方法

    这篇文章主要介绍了使用Python处理BAM的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Python中Numpy模块使用详解

    Python中Numpy模块使用详解

    这篇文章主要介绍了Python中Numpy模块使用详解,NumPy是Python 的一个扩展程序库,支持大量的维度数组与矩阵运算。更多相关内容需要的朋友可以参考一下
    2022-07-07
  • 详解python Todo清单实战

    详解python Todo清单实战

    这篇文章主要介绍了详解python Todo清单实战,需要实现的功能有添加任务、删除任务、编辑任务,操作要关联数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论