python读取mysql中的数据_Python笔记:用Python读取MySQL中的数据

Python处理数据分析的优势,很多人都知道(可以实现更复杂、更灵活的操作,包括数据预处理、数据可视化输出等),但是加载到Python中的数据,只是临时存储在内存中的一张虚拟表(退出之后就会被释放掉了,直到下次有需要就得重新加载)。

Excel是具有数据的处理和存储功能,但处理能力不如Python,存储能力又不如SQL。要是能把 Python的数据分析能力与SQL的数据存储能力结合起来,那该有多好呀(可以提升自己搞数据的上限)!

因为我们一般习惯用开源(也就是免费)的,所以我用的是MySQL数据管理系统。

在我以为朋友大顺哥的远程指导下,今天上午,我终于如愿成功地实现用Python读取MySQL里面的数据了。感谢(以后有干货,大家应该多多一起分来,好实现共同进步,提高社会竞争力……)!

闲话少说,直接真刀实枪来相见。代码操作如下:

MySQL中的数据表:

先安装pymysql库。  # pip install pymysql

# 导入需要用到的相关库

import pandas as pd

import pymysql

from sqlalchemy import create_engine

# 创建连接

# root: 后面跟本机中MySQL的密码

# 第二个mysql(最后一个)就是本机中的数据库名称,因为我直接用的就是mysql

conn = create_engine("mysql+pymysql://root:密码@localhost:3306/mysql(数据库名称)")

# 选择mysql下的xs表

# 注:xs是所要读取的表名称,且不管表名称是因为还是中文字符,都不用另外添加双引号或单引号

sql = "select * from mysql.xs"

# 读取数据

df_sql = pd.read_sql(sql,conn)

# 打印输出

df_sql

完整代码:

# 导入需要用到的相关库

import pandas as pd

import pymysql

from sqlalchemy import create_engine

# 创建连接

# root: 后面跟本机中MySQL的密码

# 第二个mysql(最后一个)就是本机中的数据库名称,因为我直接用的就是mysql

conn = create_engine("mysql+pymysql://root:123456@localhost:3306/mysql")

# 选择mysql下的xs表

# 注:xs是所要读取的表名称,且不管表名称是因为还是中文字符,都不用另外添加双引号或单引号

sql = "select * from mysql.xs"

# sql = "select * from mysql.采购经营综合查询"

# 读取数据

df_sql = pd.read_sql(sql,conn)

# 打印输出

df_sql

其余以后可能需要用到的相关代码:

#放在后面,相当于当初电子表格

conn = create_engine("mysql+pymysql://root:123456@localhost:3306/mysql",encoding="utf-8")

df_sql.to_sql("hdhgfxhknsf",con=conn,if_exists="append",index=False)

df_hdyclhsf.to_sql("hdyclhsf",con=conn,if_exists="append",index=False)

注:先要在数据库里按照你要存储的格式把字段设置好

其余代码大杂烩:

import numpy as np

import scipy as sp

import pandas as pd

import pymysql

from sqlalchemy import create_engine

import matplotlib.pyplot as plt

%matplotlib inline

plt.rcParams["font.sans-serif"]="SimHei"

plt.rcParams["axes.unicode_minus"]=False

%config InlineBackend.figure_format = "svg"

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

import os

import datetime as dt

import time

import networkx as nx

import warnings

warnings.filterwarnings("ignore")

#pd.set_option("display.unicode.east_asian_width",True)#设置列名对齐

#pd.set_option("display.max_columns",None)#显示所有列

#pd.set_option("display.max_rows",None)#显示所有行

#pd.set_option("expand_frame_repr",False)#设置不换行

pd.set_option("display.float_format",lambda z: "%.2f" % z)#不采用科学计数法

os.chdir(r"E:\hczhd")

#单个话单

df_hb = pd.read_excel("20200617100838.xls")

其实要显示全部的行和列,我还是比较习惯用下面这两段代码:

#显示特定行数

pd.options.display.max_rows = 10000

#显示特定列数

pd.options.display.max_columns = 10000

文末感悟:

① 现在是信息互联共享的时代,有针对性地终生保持学习才不容易被职场淘汰(以后会更加地有底气和有更多的选择性);

② 网络上优秀的人才比比皆是,所以在平时可以少刷朋友圈和抖音,多认识一下网上优秀的朋友,广结善缘,互相帮助,才能更好更快地实现学习成长;

③ 用Python直接从MySQL中读取数据,感觉好像明显比从Excel中快(可能是MySQL在数据存储方面更加专业吧,而且不像Excel自带各种格式)

来源:oschina

链接:https://my.oschina.net/u/3750423/blog/4315037

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值