6行代码在Jupyter里搞定PostgreSQL从安装到查询里,其中三行代码用于检查Postgres安装是否成功,

%load_ext sql%sql postgresql://postgres:@localhost/postgres%sql select version()

在三行代码都有一个共同特点,都是以%开头,这个就是今天介绍到的Jupyter魔法命令。

Jupyter NoteBook 是功能强大的Python交互IDE,深受数据分析师和算法工程师的热爱。Jupyter NoteBook 在综合使用文字、代码、图片等多种元素展示设计者的想法方面有着美妙的用户体验。而其自带的一些常用Magic Command 可以让它变得更加得心应手。

Magic命令主要包含两大类,一类是行魔法(Line magic)前缀为%,一类是单元格魔法(Cell magic)前缀为%%;有了SQL魔法的加持,Jupyter瞬间变成了强大的SQL客户端,并且支持多种数据库,如:

  • PostgreSQL: postgresql://alitrack:com@localhost/postgres

  • MySQL: mysql://alitrack:com@localhost/mydb

  • Oracle: oracle://alitrack:com@127.0.0.1:1521/ora

  • SQL Server:mssql+pyodbc://alitrack:com@mydsn

  • SQLite:sqlite:///foo.db

今天仍然以PostgreSQL为例介绍入门SQL魔法, 数据则采用最经典的机器学习数据iris.csv。

1. 开启SQL魔法

%load_ext sql

2. 连接数据库

%sql postgresql://postgres:@localhost/postgres

3. 导入数据

方式一,使用pandas读取到Dataframe

#如果pandas没有安装,请先行安装pandasimport pandas as pddf_iris=pd.read_csv("iris.csv")df_iris.head()

然后使用persist命令保存pandas DataFrame为数据库表,

%sql persist df_iris

方式2,创建数据表,然后数据库自带的高速导入命令Copy,

%%sqlCREATE TABLE iris(sepal_length REAL,sepal_width REAL,petal_length REAL,petal_width REAL,species varchar(20));COPY iris FROM 'iris.csv' DELIMITER ',' CSV HEADER ;

这个方法在数据体量比较大的情况下,非常有用,否则pandas需要循环块读取导入。

4. 绑定参数

参数替换是一项方便的功能,它允许在查询运行时定义SQL查询参数。它使代码不那么脆弱和缺乏表现力。该参数需要在本地范围内定义,并以冒号开头,即:parameter

state='FINISHED'%sql SELECT :state as "bind_variable"

5. 变量赋值

单行SQL

iris_result=%sql select * from iris;

多行SQL

%%sql iris_result <select * from irislimit 10;

输出数据类型为sql.run.ResultSet

type(iris_result)

转pandas DataFrame

df=iris_result.DataFrame()type(df)

生成pandas DataFrame后,就可以自由地输出为各种格式了。

6. 自动转pandas DataFrame

%config SqlMagic.autopandas=Truedf=%sql select * from iris limit 1;type(df)

7. 从数据库里删除数据

%sql truncate df_iris;

8. 删除数据表(慎用)

%sql drop table if exists df_iris;

有了SQL魔法,Jupyter变身SQL客户端,在绘图包的帮助下,Jupyter变身了可视化工具

#conda install -y seabornimport seaborn as snssns.set_style('whitegrid')sns.pairplot(iris,hue='species',height=4)

带着小白入门数据分析,有问题随时交流(QQ群):

想加入Excel、SAS、Python微信群的同学直接加小编微信进群。

投稿请直接联系小编,一旦采用,会有小红包感谢。

sql xml 带冒号_Jupyter与SQL魔法相关推荐

  1. java xml中的冒号_Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下. 解决了,记录下,分享给大家,百 ...

  2. hive无法执行带where语句的SQL

    应用场景 当在伪分布式集群上,搭建部署了hive以后,发现hive无法执行带where语句的sql,那hive将无法使用,下面介绍解决该问题的方案! 操作步骤 hive连接执行sql,可以执行带whe ...

  3. java mysql 占位符_在Java中编写带占位符的SQL语句

    C#中SQL中带占位符的语句 假设有一张学员信息表Student,通过表中的ID来找学员,查询的SQL语句如下 string sql = string.Format("select * fr ...

  4. Mybatis工作流程,附带mybatis的mapper文件和config配置文件模板。mapper文件和dao接口的关系——xml中的namespace和sql标签id命名要求。

    1. Mybatis工作流程 1.1 使用MySQL创建数据库girls并生成一个表boys,如下图. 1.2 创建该表对应的简单实体类Boys,如下图. 1.3 创建Dao接口以及和接口同名的map ...

  5. 【MyBatis使用】mapper.xml 调试时无法打印SQL的无奈解决方法分享(原因说明+举例)

    最近开发新功能,调试 mapper.xml 里的SQL,遇到了极其痛苦的事情: 没有 p6spy SQL无法输出到工作台 mapper 接口没有实现 MyBatis 的 BaseMapper 导致 M ...

  6. sql xml 入门

    /* sql xml 入门:--by jinjazz--http://blog.csdn.net/jinjazz1.xml: 能认识元素.属性和值2.xpath: 寻址语言,类似windows目录的查 ...

  7. xquery删除_XQuery实例删除SQL XML文档

    xquery删除 Delete operations over SQL XML should be possible with either erasing the XML document with ...

  8. sql简单带索引的语句_SQL Server 2017:栏目索引和简单计划

    sql简单带索引的语句 Some time ago, SQL Server 2017 was released and issued as CTP. The most exciting release ...

  9. 打破第一范式的要求 (中英对照)Michael Rys 对 SQL Server 2005 中XML 的 评论——对微软SQL Server项目经理Michael Rys博士的采访

    Michael Rys on XML in SQL Server 2005 Michael Rys对SQL Server 2005中XML的评论 Michael Rys is one of two p ...

最新文章

  1. 2022-2028年中国白手套行业市场全景调查及发展前景分析报告
  2. 安卓学习-界面-ui-RadioButton CheckBox
  3. 搭完环境,最后登录时提示“与数据库连接失败,请与管理员联系”
  4. eclipse java ui,Eclipse Forms筹划漂亮UI之高级组件[Java编程]
  5. android studio 工程rebuild没反应,Andriod Studio Clear Project或Rebuild Project出错
  6. matlab中的全局参量,matlab参数传递及全局变量 | 学步园
  7. 银行计算机储蓄系统程序流程图,银行储蓄系统流程图.doc
  8. 微软的SqlHelper做数据层(一)
  9. JAVA面试题《下》
  10. python写公众号_python如何编写公众号
  11. Centos7配置ssh、rsh免密互信集群服务
  12. 【看表情包学Linux】缓冲区的概念 | Git 三板斧 | 实现简易进度条
  13. (云)服务器硬件性能测试
  14. springboot 2.0 配置全局时间格式化
  15. 数字重复次数统计软件
  16. 3、组推荐系统及其应用研究---张玉洁(2016)
  17. DYA8面向对象中--包与修饰符
  18. sync.WaitGroup的用法
  19. BindingException:Invalid bound statement (not found)如何解决
  20. 论文解析:Matrix Capsule

热门文章

  1. 自动脚本以及打包,将写好的脚本打包成exe可执行文件
  2. dha哪里提取的好_孕妇吃什么dha好 藻油提取的DHA最适合
  3. Revit二次开发手记【1】
  4. networkx 有向图强连通_有向图的强连通分支
  5. MongoDB基础指令
  6. 花 40 块搞个游戏机「GitHub 热点速览 v.22.27」
  7. 剑门高级中学2021年高考成绩查询,剑门关高级中学2021年高中部入学条件是什么?...
  8. Java数字加密(加密解密)
  9. plm显示服务器位置无效,PLM能解决的常见数据管理问题
  10. csharp基础练习题:TO DE-RY-PO-陆琪暗号【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练