超实用干货|Python+SQL无敌组合,菜鸟必读!

数据洞察:Python 与 SQL 的强力结合 本文介绍了 Python 和 SQL 在数据处理和分析中的应用,从环境准备到数据库连接、数据结构设计、基本的数据操作、数据分析、数据可视化,以及一个综合实例的演示。同时,探讨了性能优化和错误处理的重要性。最后展望了 Python 和 SQL 在数据分析领域的未来发展,包括更高效的数据处理工具、更强大的数据可视化工具、自动化和机器学习的整合、云数据库和大数据技术的应用,以及更强的社区支持与开源发展。 阅读详情

640?wx_fmt=jpeg


SQL是结构化查询语言Structured Query Language的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。


在正式讲解代码之前,先来科普一下数据库相关的知识。



数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库系统具有如下特点:



① 数据结构化

实现整体数据的结构化,这里所说的“整体”结构化,是指在数据库中的数据不再仅针对某个应用,而是面向全组织;不仅数据内部是结构化,而且整体式结构化,数据之间有联系。



② 数据共享性高

多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。



③ 数据冗余度低

减少重复数据的存储,节约存储空间。



④ 数据独立性高

用户的应用程序与数据库的物理存储结构和逻辑结构是相互独立的。



数据库可以分为两类,关系型数据库和非关系型数据库NoSQL(Not Only SQL)。



关系型数据库是由多张能互相联接的二维行列表格组成的数据库。



非关系型数据库NoSQL主要是指非关系型、分布式、不提供ACID的数据库设计模式。其中,ACID是指数据库事务处理的四个基本要素,分别代表原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。



这里我们重点介绍一下关系型数据库,常用的有Oracle、MySQL、Microsoft SQL Server和PostgreSQL等,下面会用PostgreSQL作为实例,讲解如何用Python连接数据库并用SQL进行后续操作。


01

用Python连接数据库PostgreSQL



PostgreSQL是最先进并且应用最广泛的关系型数据库管理系统之一。它非常受欢迎的原因有很多,其中包括它是开源的、它的可扩展性以及它处理许多不同类型的应用程序和不同负载的能力。


用Python可以轻松地建立到PostgreSQL数据库的连接。PostgreSQL有很多Python驱动程序,其中“psycopg”是最流行的一个,它的当前版本是psycopg2。


我们可以用psycopg2模块将Postgres与Python连在一起。psycopg2是一个用于Python的Postgres数据库适配器。首先,需要用pip命令进行安装。



 
$ pip3 install psycopg2



安装好之后,我们就可以用它进行数据库连接操作。首先,应该创建一个表示数据库的连接对象con。接着,创建一个游标对象cur来执行SQL语句。



 
import psycopg2con = psycopg2.connect(database="postgres", user="postgres", password="Kaliakakya", host="127.0.0.1", port="5432")  print("Database opened successfully")cur = con.cursor()  
con = psycopg2.connect(database="postgres", user="postgres", password="Kaliakakya", host="127.0.0.1", port="5432")  
print("Database opened successfully")

cur = con.cursor()  

database:要连接的数据库名称。

user:用于身份验证的用户名,默认为"postgres"。

password:用户的数据库密码,自己设置的。

host:数据库服务器的地址,如域名、“localhost”或IP地址。

port:端口,默认值为5432。



我们也可以用sqlalchemy库连接,代码如下:



 
from sqlalchemy import create_engineengine = create_engine('postgresql://postgres:password@localhost:5432/postgres')import create_engine

engine = create_engine('postgresql://postgres:password@localhost:5432/postgres')


02

SQL数据库操作



建表


我们用SQL语句CREATE TABLE在Python中创建Postgres表,先用上面提到的方法建立数据库连接,再调用属于连接对象的cursor()方法来创建游标对象,该游标对象用于实际执行命令。


然后调用cursor对象的execute()方法来帮助创建表。最后,我们需要提交con.commit()并关闭连接con.close()。“提交”连接告诉驱动程序将命令发送到数据库,这一步很重要。


这里我们创建两个表,“沪深300指数日线行情”和“沪深股票qfq日线行情”。


 
import psycopg2con = psycopg2.connect(database="postgres", user="postgres", password="", host="127.0.0.1", port="5432")print("Database opened successfully")cur = con.cursor()cur.execute("""CREATE    TABLE    沪深300指数日线行情                                  (ts_code          VARCHAR(10)      NOT NULL,                                   trade_date       DATE             NOT NULL,                                   open_p           NUMERIC          DEFAULT 0,                                   high_p           NUMERIC          DEFAULT 0,                                   low_p            NUMERIC          DEFAULT 0,                                   close_p          NUMERIC          DEFAULT 0,                                   pre_close        NUMERIC          DEFAULT 0,                                   pct_chg          NUMERIC          DEFAULT 0,                                   PRIMARY KEY (ts_code, trade_date)                                    ) ; """)print("Table created successfully")con.commit()con.close()
con = psycopg2.connect(database="postgres", user="postgres", password="", host="127.0.0.1", port="5432")
print("Database opened successfully")

cur = con.cursor()
cur.execute("""CREATE    TABLE    沪深300指数日线行情
                                  (ts_code          VARCHAR(10)      NOT NULL,
                                   trade_date       DATE             NOT NULL,
                                   open_p           NUMERIC          DEFAULT 0,
                                   high_p           NUMERIC          DEFAULT 0,
                                   low_p            NUMERIC          DEFAULT 0,
                                   close_p          NUMERIC          DEFAULT 0,
                                   pre_close        NUMERIC          DEFAULT 0,
                                   pct_chg          NUMERIC          DEFAULT 0,
                                   PRIMARY KEY (ts_code, trade_date)
                                    ) ; """)

print("Table created successfully")

con.commit()
con.close()
(左右滑动查看代码)
简单说明一下, VARCHAR(10)、DATE、NUMERIC 代表的是数据类型, NOT NULL 代表非空约束, DEFAULT 0 表示将默认值设置为0,PRIMARY KEY代表主键,用于唯一标识数据库表中的一行数据。
看到如下输出,就表示表已创建成功。同理,可创建另一个表“沪深股票qfq日线行情”。

 
Database opened successfully  Table created successfully  
Table created successfully  


插入数据


既然表已经创建成功,我们就可以开始插入数据了,先从tushare.pro上面获取沪深300指数日线行情数据,用INSERT INTO这个SQL语句插入。


import psycopg2import pandas as pdimport tushare as tscon = psycopg2.connect(database="postgres", user="postgres", password="", host="127.0.0.1", port="5432")print("Database opened successfully")cur = con.cursor()pro = ts.pro_api()df = pro.index_daily(ts_code='399300.SZ', start_date='20190501', end_date='20190531')  # 单位:涨跌幅(%), 成交量(手)、成交额(千元)ts_code = df['ts_code'].tolist()trade_date = df['trade_date'].tolist()open_p = df['open'].tolist()high_p = df['high'].tolist()low_p = df['low'].tolist()close_p = df['close'].tolist()pre_close = df['pre_close'].tolist()pct_chg = df['pct_chg'].tolist()count = 0for i in range(len(ts_code)):    cur.execute("""    INSERT INTO 沪深300指数日线行情 (ts_code, trade_date, open_p, high_p, low_p, close_p, pre_close, pct_chg)    VALUES( %s, %s, %s, %s, %s, %s, %s, %s);""",                 (ts_code[i],                  trade_date[i],                  open_p[i],                  high_p[i],                  low_p[i],                  close_p[i],                  pre_close[i],                  pct_chg[i]))    con.commit()    print("已插入{0}行,共有{1}行".format(count, len(ts_code)))    count += 1 
import pandas as pd
import tushare as ts

con = psycopg2.connect(database="postgres", user="postgres", password="", host="127.0.0.1", port="5432")
print("Database opened successfully")

cur = con.cursor()

pro = ts.pro_api()
df = pro.index_daily(ts_code='399300.SZ', start_date='20190501', end_date='20190531')  # 单位:涨跌幅(%), 成交量(手)、成交额(千元)


ts_code = df['ts_code'].tolist()
trade_date = df['trade_date'].tolist()
open_p = df['open'].tolist()
high_p = df['high'].tolist()
low_p = df['low'].tolist()
close_p = df['close'].tolist()
pre_close = df['pre_close'].tolist()
pct_chg = df['pct_chg'].tolist()


count = 0
for i in range(len(ts_code)):
    cur.execute("""
    INSERT INTO 沪深300指数日线行情 (ts_code, trade_date, open_p, high_p, low_p, close_p, pre_close, pct_chg)
    VALUES( %s, %s, %s, %s, %s, %s, %s, %s);"""
,
                 (ts_code[i],
                  trade_date[i],
                  open_p[i],
                  high_p[i],
                  low_p[i],
                  close_p[i],
                  pre_close[i],
                  pct_chg[i]))
    con.commit()
    print("已插入{0}行,共有{1}行".format(count, len(ts_code)))
    count += 1 

(左右滑动查看代码)


同理,将tushare.pro里面的沪深股票前复权通用行情数据插入表“沪深股票qfq日线行情”,示例中只插入两只股票,平安银行'000001.SZ' 和万科A'000002.SZ'。


这里我们介绍另一种存储数据的方法,直接用Pandas自带的df.to_sql(),将获取的DataFrame一次性插入到数据库中,比上面介绍的先建表,再一行行插入的方法要简洁很多。


 
from sqlalchemy import create_engineimport pandas as pdimport tushare as tsts.set_token('your token')engine = create_engine('postgresql://postgres:password@localhost:5432/postgres')print('Database opened successfully')pro = ts.pro_api()code_list = ['000001.SZ', '000002.SZ']for i in code_list:    print(i)    df = ts.pro_bar(ts_code=i, adj='qfq', start_date='20190501', end_date='20190531')    df.to_sql(name='沪深股票qfq日线行情', con=engine, index=False, if_exists='append')import create_engine
import pandas as pd
import tushare as ts
ts.set_token('your token')


engine = create_engine('postgresql://postgres:password@localhost:5432/postgres')
print('Database opened successfully')
pro = ts.pro_api()

code_list = ['000001.SZ', '000002.SZ']
for i in code_list:
    print(i)
    df = ts.pro_bar(ts_code=i, adj='qfq', start_date='20190501', end_date='20190531')
    df.to_sql(name='沪深股票qfq日线行情', con=engine, index=False, if_exists='append')

(左右滑动查看代码)


值得注意的一点是,这种方法在数据量小的时候一般不会出问题,但当数据量很大时,可能会因服务器无法响应而报错。这时,需要设置参数值chunksize,限制每次插入的行数。更多有关参数的说明,可到官方文档查看【1】。


有了数据,我们就可以用SQL对数据库进行一系列的操作了。



 

获取数据


 


我们可以用Pandas自带的.read_sql()方法获取数据,直接返回的是DataFrame格式,非常方便,详细的参数解析请查看官方文档【2】。SQL的查询功能是很强大的,下面介绍常用的一些筛选条件。


选取某张表的特定几列:

from sqlalchemy import create_engineimport pandas as pdengine = create_engine('postgresql://postgres:password@localhost:5432/postgres')df_index = pd.read_sql("SELECT ts_code, trade_date, close_p FROM 沪深300指数日线行情;", con=engine)print(df_index.head())     ts_code  trade_date    close_p0  399300.SZ  2019-05-31  3629.78931  399300.SZ  2019-05-30  3641.18332  399300.SZ  2019-05-29  3663.90903  399300.SZ  2019-05-28  3672.26054  399300.SZ  2019-05-27  3637.1971import create_engine
import pandas as pd


engine = create_engine('postgresql://postgres:password@localhost:5432/postgres')

df_index = pd.read_sql("SELECT ts_code, trade_date, close_p FROM 沪深300指数日线行情;", con=engine)
print(df_index.head())


     ts_code  trade_date    close_p
0  399300.SZ  2019-05-31  3629.7893
1  399300.SZ  2019-05-30  3641.1833
2  399300.SZ  2019-05-29  3663.9090
3  399300.SZ  2019-05-28  3672.2605
4  399300.SZ  2019-05-27  3637.1971



用DISTINCT选取唯一值:

df = pd.read_sql("SELECT DISTINCT ts_code FROM 沪深股票qfq日线行情;", con=engine)print(df)    ts_code0  000001.SZ1  000002.SZDISTINCT ts_code FROM 沪深股票qfq日线行情;", con=engine)
print(df)


    ts_code
0  000001.SZ
1  000002.SZ



用COUNT计数:


 
# 查看某列有多少唯一值df = pd.read_sql("SELECT COUNT(DISTINCT ts_code) FROM 沪深股票qfq日线行情;", con=engine)print(df)   count0      2
df = pd.read_sql("SELECT COUNT(DISTINCT ts_code) FROM 沪深股票qfq日线行情;", con=engine)
print(df)

   count
0      2



用WHERE语句筛选数值:


 
df = pd.read_sql("SELECT * FROM 沪深股票qfq日线行情 WHERE trade_date = '20190528';", con=engine)print(df)     ts_code  trade_date  open_p   ...     close_p  pre_close  pct_chg0  000001.SZ  2019-05-28   12.31   ...       12.49      12.37     0.971  000002.SZ  2019-05-28   27.00   ...       27.62      27.00     2.30FROM 沪深股票qfq日线行情 WHERE trade_date = '20190528';", con=engine)
print(df)

     ts_code  trade_date  open_p   ...     close_p  pre_close  pct_chg
0  000001.SZ  2019-05-28   12.31   ...       12.49      12.37     0.97
1  000002.SZ  2019-05-28   27.00   ...       27.62      27.00     2.30



WHERE语句搭配AND和OR一起使用:


 
df = pd.read_sql("SELECT ts_code, trade_date FROM 沪深股票qfq日线行情 WHERE (trade_date < '20190510' OR trade_date > '20190520') AND pct_chg > 1;", con=engine)print(df)     ts_code  trade_date0  000001.SZ  2019-05-211  000002.SZ  2019-05-282  000002.SZ  2019-05-07FROM 沪深股票qfq日线行情 WHERE (trade_date < '20190510' OR trade_date > '20190520') AND pct_chg > 1;", con=engine)
print(df)

     ts_code  trade_date
0  000001.SZ  2019-05-21
1  000002.SZ  2019-05-28
2  000002.SZ  2019-05-07



和WHERE语句类似,BETWEEN也可以搭配AND和OR一起使用:


 
df = pd.read_sql("SELECT ts_code, trade_date FROM 沪深股票qfq日线行情 WHERE trade_date BETWEEN '20190510' AND '20190520' AND pct_chg > 1;", con=engine)print(df)     ts_code  trade_date0  000001.SZ  2019-05-151  000001.SZ  2019-05-142  000001.SZ  2019-05-103  000002.SZ  2019-05-154  000002.SZ  2019-05-10FROM 沪深股票qfq日线行情 WHERE trade_date BETWEEN '20190510' AND '20190520' AND pct_chg > 1;", con=engine)
print(df)

     ts_code  trade_date
0  000001.SZ  2019-05-15
1  000001.SZ  2019-05-14
2  000001.SZ  2019-05-10
3  000002.SZ  2019-05-15
4  000002.SZ  2019-05-10



WHERE和IN的组合,可以简化WHERE结合多个OR进行筛选的代码:


 
df = pd.read_sql("SELECT ts_code, trade_date FROM 沪深股票qfq日线行情 WHERE trade_date IN ('20190510', '20190520', '20190527');", con=engine)print(df)     ts_code  trade_date0  000001.SZ  2019-05-271  000001.SZ  2019-05-202  000001.SZ  2019-05-103  000002.SZ  2019-05-274  000002.SZ  2019-05-205  000002.SZ  2019-05-10FROM 沪深股票qfq日线行情 WHERE trade_date IN ('20190510', '20190520', '20190527');", con=engine)
print(df)

     ts_code  trade_date
0  000001.SZ  2019-05-27
1  000001.SZ  2019-05-20
2  000001.SZ  2019-05-10
3  000002.SZ  2019-05-27
4  000002.SZ  2019-05-20
5  000002.SZ  2019-05-10



NULL的意思是空值,IS NULL代表是空值,IS NOT NULL代表不是空值:


 
df = pd.read_sql("SELECT COUNT(*) FROM 沪深股票qfq日线行情 WHERE close_p IS NULL ;", con=engine)print(df)  count0      0COUNT(*) FROM 沪深股票qfq日线行情 WHERE close_p IS NULL ;", con=engine)
print(df)

  count
0      0



可以用聚合函数对数据做一些计算,如平均值AVG(),最大值MAX(),求和SUM():


 
df = pd.read_sql("SELECT AVG(close_p) FROM 沪深300指数日线行情;", con=engine)print(df)          avg0  3659.63762AVG(close_p) FROM 沪深300指数日线行情;", con=engine)
print(df)

          avg
0  3659.63762



聚合函数也可以和WHERE语句结合进行筛选:


 
df = pd.read_sql("SELECT AVG(close_p) FROM 沪深300指数日线行情 WHERE trade_date > '20190515';", con=engine)print(df)            avg0  3645.740858AVG(close_p) FROM 沪深300指数日线行情 WHERE trade_date > '20190515';", con=engine)
print(df)

            avg
0  3645.740858



用AS为新列命名:


 
df = pd.read_sql("""SELECT MAX(close_p) AS  max_close_p,                           MAX(open_p)  AS  max_open_p     FROM 沪深300指数日线行情;""", con=engine)print(df) max_close_p  max_open_p0    3743.9635   3775.0765
print(df)

 max_close_p  max_open_p
0    3743.9635   3775.0765



ORDER BY排序,默认为升序,降序需要在末尾加上DESC:


 
# 升序:df = pd.read_sql("""SELECT ts_code, trade_date FROM 沪深300指数日线行情 ORDER BY trade_date;""", con=engine)print(df)# 降序:df = pd.read_sql("""SELECT ts_code, trade_date FROM 沪深300指数日线行情 ORDER BY trade_date DESC;""", con=engine)print(df)
df = pd.read_sql("""SELECT ts_code, trade_date FROM 沪深300指数日线行情 ORDER BY trade_date;""", con=engine)
print(df)

# 降序:
df = pd.read_sql("""SELECT ts_code, trade_date FROM 沪深300指数日线行情 ORDER BY trade_date DESC;""", con=engine)
print(df)



ORDER BY也可以根据多个列进行排序:


 
df = pd.read_sql("""SELECT trade_date, ts_code FROM 沪深股票qfq日线行情 ORDER BY trade_date, ts_code;""", con=engine)print(df)    trade_date    ts_code0   2019-05-06  000001.SZ1   2019-05-06  000002.SZ2   2019-05-07  000001.SZ3   2019-05-07  000002.SZ4   2019-05-08  000001.SZ
print(df)

    trade_date    ts_code
0   2019-05-06  000001.SZ
1   2019-05-06  000002.SZ
2   2019-05-07  000001.SZ
3   2019-05-07  000002.SZ
4   2019-05-08  000001.SZ



GROUP BY进行分组,并结合聚合函数分组计算数据:


 
df = pd.read_sql("""SELECT ts_code, COUNT(*) FROM 沪深股票qfq日线行情 GROUP BY ts_code;""", con=engine)print(df)     ts_code  count0  000001.SZ     201  000002.SZ     20
print(df)

     ts_code  count
0  000001.SZ     20
1  000002.SZ     20



如果要在分组GROUP BY的基础上再增加聚合函数筛选条件,可用HAVING:




 
df = pd.read_sql("""SELECT ts_code FROM 沪深股票qfq日线行情 GROUP BY ts_code HAVING COUNT(*) > 15 ;""", con=engine)print(df)     ts_code0  000001.SZ1  000002.SZ
print(df)

     ts_code
0  000001.SZ
1  000002.SZ



LIMIT限制取出的行数:


 
df = pd.read_sql("""SELECT * FROM 沪深股票qfq日线行情 LIMIT 3;""", con=engine)print(df)     ts_code  trade_date  open_p   ...     close_p  pre_close  pct_chg0  000001.SZ  2019-05-31   12.16   ...       12.18      12.22    -0.331  000001.SZ  2019-05-30   12.32   ...       12.22      12.40    -1.452  000001.SZ  2019-05-29   12.36   ...       12.40      12.49    -0.72
print(df)

     ts_code  trade_date  open_p   ...     close_p  pre_close  pct_chg
0  000001.SZ  2019-05-31   12.16   ...       12.18      12.22    -0.33
1  000001.SZ  2019-05-30   12.32   ...       12.22      12.40    -1.45
2  000001.SZ  2019-05-29   12.36   ...       12.40      12.49    -0.72

03

总结


本文介绍了数据库系统的优势,如何用Python连接数据库并用SQL进行后续的查询操作。SQL是非常强大的查询语言,在使用Python对数据进行分析之前,可以通过筛选精准地获取想要的数据。


Python和SQL的组合能够大大提升数据分析的效率和质量,希望大家可以好好学习和利用起来!



618来了,说三个小福利 历史最低特价还剩1天

仅限6/17-6/19

目前已经破1000人

640?wx_fmt=jpeg


相关推荐

基于 Cognex VisionPro 的工业级图像匹配技术全解析

通过本文的深度解析,开发者可以系统掌握 Cognex VisionPro 图像匹配技术的核心原理、开发流程、优化策略及工业级应用。实际项目中,需结合具体场景灵活调整参数,综合运用预处理、特征提取和匹配算法,构建稳定可靠的视觉系统。

品质生活,极致编程。 1594

numeric转换varchar_SQL怎么样把numeric类型的数据转换为varchar类型的数据

展开全部可以用cast来转换。如:列e69da5e6ba9062616964757a686964616f31333433626465名叫grade,表名为A select cast(grade as numeric(y,x)) from A 其中y代表数据长度,x代表小数位长度。注意:grade中必须全为数字或小数点,如果存在中文或英文,则运行时会报错。使用CAST函数进行数据类型转换时,在下列情...

weixin_39548740的博客 6579

vSphere环境证书更新/续订案例及注意事项

早期VMware的用户随后“十年之期”已到,陆陆续续出现各种登录问题,证书报错告警等,主要包含6.5到7.0的版本,VMware服务器虚拟化环境涉及的证书及类型较多,在实际更新中会出现各种奇怪的问题,有些坑耗费了大量的troubleshooting时间,极端情况下一天能看到十多遍如下报错😂本文整理了一个近期的更新案例,以及之前处理过的一些问题,仅作参考CA根证书颁发机构,用于签发其他组件的证书,其他证书的有效期不会超过根证书。

RaySun的技术Blog 3203

sql numeric转varchar_SQL 入门笔记

SQL 入门笔记 SQL 是用于访问和处理数据库的标准的计算机语言。参考资料1.菜鸟教程 SQL教程2.W3school SQL教程SQL语法 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。查询和更新指令构成了 SQL 的 DML 部分:SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT I...

weixin_39886238的博客 1688

Cortex-M内核DWT周期计数器:从原理到STM32实战时间测量与性能分析

在嵌入式开发中,代码执行耗时测量是性能优化的基础。除了依赖外设定时器或SysTick,ARM Cortex-M3/M4/M7内核自带的DWT(Data Watchpoint and Tracker)调试组件提供了一种极低侵入性的硬件计时方案。其内部的32位周期计数器CYCCNT跟随内核时钟递增,无需占用额外引脚或定时器资源,即可实现纳秒级分辨率的函数耗时测量、中断响应分析及延时实现。从DWT寄存器配置、周期差值计算到基于SystemCoreClock的微秒换算,开发者可以快速搭建一套轻量级性能分析工具。本文

weixin_34216614的博客 187

RU.EXE实用指南:从基础操作到高级调试技巧

本文是RU.EXE(RW Everything)的实用指南,详细介绍了这款硬件调试工具从基础操作到高级技巧的全过程。文章阐述了RU.EXE作为直接读写硬件寄存器、内存和PCI配置空间的强大工具,如何帮助硬件工程师和开发人员高效进行底层系统调试与故障排查,并强调了安全操作的重要性。

weixin_29228203的博客 278

sql numeric转varchar_SQL 必知必会

1. Join 从句1.1 Inner JoinInner Join 就是 Join。语句为:Join … on。当连接的列名相同时,可以使用 using 语句。1.1.1 自然连接natural join = inner join + using.1.1.2 Self-join自连接是 Join 的特例,是自己连接自己。1.2 Outer JoinOuter Join:保留为匹配的列。Outer...

weixin_39934869的博客 1036

[AbutionGraph] 报表制作-使用Grafana动态可视化知识图谱指标

使用开源报表可视化工具Grafana实时监控时序知识图谱数据仓库AbutionGraph中的数据,实时性报表查询, 满足单次百万千万级的数据查询,毫秒级查询延迟,亚秒级对千亿数据量汇总统计,每日过亿报表查询/多维分析/日志分析等数据指标...

图特摩斯科技-博客 4278

sql python_超实用干货|Python+SQL无敌组合,菜鸟必读!

原标题:超实用干货|Python+SQL无敌组合,菜鸟必读! SQL是结构化查询语言Structured Query Language的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在正式讲解代码之前,先来科普一下数据库相关的知识。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库系统具有如下特点:① ...

weixin_39920338的博客 725

MATLAB数据可视化:pcolor函数从入门到精通(附colormap调色秘籍)

本文深入解析MATLAB中pcolor函数的数据可视化应用,从核心机制、坐标网格指定到常见陷阱规避。重点揭秘colormap调色秘籍,涵盖内置色系选用原则、个性化定制方法及高级渲染技巧,助你创作出信息准确、视觉出色的专业图表,精通从数据到出版级图表的全流程。

kafka6courier的博客 246

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2977

pythondistinct教程_超实用干货|Python SQL无敌组合,菜鸟必读!

插入数据既然表已经创建成功,我们就可以开始插入数据了,先从tushare.pro上面获取沪深300指数日线行情数据,用INSERT INTO这个SQL语句插入。importpsycopg2importpandasaspdimporttushareastscon=psycopg2.connect(database='postgres',user='postgres',passw...

weixin_34621186的博客 842

阿里云百炼全解析:一站式大模型开发平台的架构与行业实践

摘要: 阿里云百炼平台通过一站式架构革新大模型开发范式,将传统碎片化工具链整合为统一工作流,实现开发周期从月级到小时级的跃迁。其核心架构包含接入层、引擎层与资源层,关键技术突破包括MCP服务协议、多模态引擎及高性能训练优化。平台提供全生命周期开发支持,从数据准备到模型部署,并通过VPC隔离、数据加密构建企业级安全体系。已在医疗、电力等行业实现显著增效,如阿斯利康药物分析系统准确率提升至95%。未来将向多Agent协同、边缘计算等方向演进,推动AI技术深度融入产业核心。

fudaihb的博客 1990

python propresql mysql_超实用干货|Python+SQL无敌组合,菜鸟必读!

③ 数据冗余度低④ 数据独立性高用户的应用程序与数据库的物理存储结构和逻辑结构是相互独立的。数据库可以分为两类,关系型数据库和非关系型数据库NoSQL(Not Only SQL)。非关系型数据库NoSQL主要是指非关系型、分布式、不提供ACID的数据库设计模式。其中,ACID是指数据库事务处理的四个基本要素,分别代表原子性Atomicity、一致性Consistency、隔离性Isolation、...

weixin_39685836的博客 207

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

sql numeric转varchar_超实用干货|Python+SQL无敌组合,菜鸟必读!

SQL是结构化查询语言Structured Query Language的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在正式讲解代码之前,先来科普一下数据库相关的知识。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库系统具有如下特点:① 数据结构化实现整体数据的结构化,这里所说的“整体”结...

weixin_39610594的博客 373

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ts里sql语句参数说明_超实用干货|Python+SQL无敌组合,菜鸟必读!

SQL是结构化查询语言Structured Query Language的简称,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在正式讲解代码之前,先来科普一下数据库相关的知识。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库系统具有如下特点:① 数据结构化实现整体数据的结构化,这里所说的“整体”结...

weixin_35778603的博客 779

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

我总结的80页《菜鸟学Python精选干货.pdf》,都是干货

最近后台有很多小伙伴留言,咨询一些Python的问题,有一些是转行的小伙伴,有一些是文科的同学,竟然还有一些是初中生也关注了我们,非常感谢大家的支持。为了更好的福利大家,这次我们公开了一...

cainiao_python的博客 1169

实用干货!用Python操作MySQL的使用教程集锦!

点击上方“菜鸟学Python”,选择“星标”公众号超级无敌干货,第一时间送达!!!来源丨网络一. python操作数据库介绍大家好,我是J哥。Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicros...

cainiao_python的博客 367

干货!5分钟菜鸟学会Python玩转SQL的神器!

作者:言淦,一枚喜欢淦代码的码农,"言淦说"主理人背景其实一开始用的是pymysql,但是发现维护比较麻烦,还存在代码注入的风险,所以就干脆直接用ORM框架。ORM即Object Relational Mapper,可以简单理解为数据库表和Python类之间的映射,通过操作Python类,可以间接操作数据库。Python的ORM框架比较出名的是SQLAlchemy和Pee...

cainiao_python的博客 319

难怪大家都建议我上这5个网站学Python!

这五个网站各具特色且广受好评,是学习Python的绝佳选择。无论是初学者还是有一定经验的程序员,都可以在这些网站上找到适合自己的学习资源和项目实践机会。这只是冰山一角,想要完整版的小伙伴下图获取~04,Python小白必备手册。03,Python面试集锦。01,Python大礼包。02,Python电子书。05,Python安装包。06,数据分析全套资源。

2301_78095812的博客 1209
上一篇: 10万+的短视频被批量生产了,Python表示不服
下一篇: 一个300多万人玩的闯关趣味Python网站
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值