Python read

Python read,第1张

【参数介绍】

sql:需要执行的sql
con:连接数据库所需的engine
index_col: 选取作为index的列
coerce_float:将数字形字符串转为float,默认为True,是个坑!
parse_dates:将某列日期型字符串转换为datetime型数据
columns:选择想要保留的列
chunksize:每次输出多少行数据

【例如】

import pandas as pd

import numpy as np

import pymysql

sql='select * from table'

conn=pymysql.connect(host='数据库地址',port=3306,user='',password='',database='',charset=‘utf8’)

df=pd.read_sql(sql,con=conn,chunksize=1000,coerce_float=False)

【注意⚠️】

1、加入chunksize参数后,返回的df不再是dataframe类型而是一个迭代器,每个分区均为行数1000的dataframe。因此不可直接对df进行dataframe的常规函数 *** 作。

for i in df :

print(i)

2、数据中有中文的时候数据库engine的charset参数需设置‘utf8’

3、数据中含有decimal类型数据,若不想读取时自动转化为float,一定要带“coerce_float=False”参数,因为默认值时true。楼主在读取数据时发现所有decimal的数据全部变为float类型,整数型多了.0不说,17位的数字变成了科学计数法并丢失了精度。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/942296.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-18
下一篇2022-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存