SELECT col_name FROM table_name; 检索多列 从table_name表中检索col_1,col_2和col_3列。...SELECT col_1,col_2,col_3 FROM table_name; 检索所有列 使用通配符*,返回table_name表中的所有列; SELECT * FROM table_name;...检索某列中不同的值 检索col_1中具有唯一性的行,即唯一值。...降序排序 SELECT col_1,col_2 FROM table_name ORDER BY col_2 DESC,col_3; 返回的数据会按照col_2列降序,col_3列升序对col_1和col...使用示例: 在表table_1列col_1中筛选出满足条件col_1 运算符 value的值。
我们将创建cuDF(cuda dataframe),其大小为10000000行x 2列(10M x 2),首先导入需要的库: import cudf import pandas as pd import...我们看看创建时的时间对比: 现在让我们看看GPU是否通过对这些数据帧执行一些操作来提高性能!...对数运算 为了得到最好的平均值,我们将对两个df中的一列应用np.log函数,然后运行10个循环: GPU的结果是32.8毫秒,而CPU(常规的pandas)则是2.55秒!...基于gpu的处理快的多的多。 从" Int "到" String "的数据类型转换 通过将的“col_1”(包含从0到10M的整数值)转换为字符串值(对象)来进一步测试。...cuml.metrics.regression import r2_score from sklearn.linear_model import LinearRegression as skLinearRegression 创建虚拟数据并将其拆分
在下面的代码片段中,数据清洗代码被封装在了一些函数中,代码的目的十分直观。...如果你有兴趣学习如何使用「Pandas」来处理大数据,我强烈推荐你阅读「Why and How to Use Pandas with Large Data」这篇文章(https://towardsdatascience.com...删除列中的字符串 def remove_col_str(df): # remove a portion of string in a dataframe column - col_1 df...你可以很容易地使用 df[‘col_1’].replace 来处理该问题,其中「col_1」是数据帧 df 中的一列。...在字符串的开头有一些空格是很常见的。因此,当你想要删除列中字符串开头的空格时,这种方法很实用。
今天主要聊一下取数分析中容易忽略的点,尤其是SQL中的NULL值。...1、空值JOIN时导致数据丢失 创建案例数据表 CREATE TABLE IF NOT EXISTS tmp_test_3 ( id_1 INT, col_1 VARCHAR(255), col_2 VARCHAR...现在有个业务,部分数据存在tmp_test_3表,有一些存在tmp_test_4表,假设要得到两个表中的数据,需要这两个表按col_2、col_4列JOIN连接。...直接说原因:在tmp_test_3和tmp_test_4表中用于join的列存在NULL值,而NULL和任何值做比较都是返回的NULL(即不能对NULL进行!=、=、>、<等判断,返回是NULL)。...,也可以对多个列运算后求和忽略NULL值,且当对多个列运算求和时,如果运算的列中任意一列的值为NULL,则忽略这行的记录。
本文给大家总结如何让SQL起飞(优化) 一、SQL写法优化 在SQL中,很多时候不同的SQL代码能够得出相同结果。...这里用Items表和SalesHistory表举例: 图片 我们思考一下如何从上面的商品表Items中找出同时存在于销售记录表SalesHistory中的商品。简而言之,就是找出有销售记录的商品。...如果你建立一个(col_1, col_2, col_3)的联合索引,相当于建立了 (col_1)、(col_1,col_2)、(col_1,col_2,col_3) 三个索引。...* FROM SomeTable WHERE col_2 = 100 AND col_1 = 10 ; 联合索引中的第一列(col_1)必须写在查询条件的开头,而且索引中列的顺序不能颠倒。...可能需要说明的是最后一条SQL为什么会走索引,简单转化一下,col_2 = 100 AND col_1 = 10, 这个条件就相当于col_1 = 10 AND col_2 = 100,自然就可以走联合做因
直到我遇到了StyleFrame模块,这个模块是把Pandas和openpyxl进行了结合,让你既可以享受DataFrame的操作便利,又可以轻松利用openpyxl进行表格样式设置。...Excel中我们平常设置的主要有字体(类型、颜色、边框线、背景色、下划线、大小、加粗)、对齐方式(水平方向、垂直方向)、数字(数据显示格式,百分数、小数点位数、时间格式等设置)、条件格式四个部分。...当我们把字体样式设置成Arial样式,实现代码如下: #将col_1和col_2列的字体设置成微软雅黑 sf.apply_column_style(cols_to_style=["col_1","col..._1列的字体设置成绿色,col_2列字体设置成红色,实现代码如下: sf.apply_column_style(cols_to_style=["col_1"],...我们把col_1列的单元格背景设置成绿色,col_2列单元格背景设置成红色,实现代码如下: sf.apply_column_style(cols_to_style=["col_1"],
1、参数是子查询时,使用 EXISTS 代替 IN 如果 IN 的参数是(1,2,3)这样的值列表时,没啥问题,但如果参数是子查询时,就需要注意了。...8、减少中间表 在 SQL 中,子查询的结果会产生一张新表,不过如果不加限制大量使用中间表的话,会带来两个问题,一是展示数据需要消耗内存资源,二是原始表中的索引不容易用到,所以尽量减少中间表也可以提升性能...“col_1, col_2, col_3”。...,第三条由于没有先匹配 col_1,导致无法命中索引, 另外如果无法保证查询条件里列的顺序与索引一致,可以考虑将联合索引 拆分为多个索引。...),降低性能,而如果我们所要的数据就在组合索引里,只需读取组合索引列,这样网络带宽将大大减少,假设有组合索引列 (col_1, col_2) 推荐用 SELECT col_1, col_2 FROM
我的数据清洗小工具箱 在下面的代码片段中,数据清洗代码被封装在了一些函数中,代码的目的十分直观。你可以直接使用这些代码,无需将它们嵌入到需要进行少量参数修改的函数中。 1....如果你有兴趣学习如何使用「Pandas」来处理大数据,我强烈推荐你阅读「Why and How to Use Pandas with Large Data」这篇文章(https://towardsdatascience.com...删除列中的字符串 def remove_col_str(df): # remove a portion of string in a dataframe column - col_1 df...你可以很容易地使用 df['col_1'].replace 来处理该问题,其中「col_1」是数据帧 df 中的一列。 6....在字符串的开头有一些空格是很常见的。因此,当你想要删除列中字符串开头的空格时,这种方法很实用。 7.
图片对 Pandas 不熟悉的同学,一定要学习下这个宝藏工具库哦!ShowMeAI 给大家做了一个详尽的教程,可以在 ? Python 数据分析教程 中查看,我们同时也制作了 ?...小数位精度不一致对于浮点型的字段列,Pandas 可能有不同的位精度。例如下图中,col_1 精确到小数点后一位,而 col_2 精确到小数点后三位。有时候精度的不一致可能会有信息的差异。...图片在本篇内容中,ShowMeAI 将介绍如何使用 Pandas 自定义设置来解决诸如上述的问题。...主要的设置包括下面内容:自定义要显示的行数自定义要显示的列数自定义列宽使浮点列之间的小数位精度保持一致禁用科学记数法其他用法注意:以上设置仅更改数据的显示呈现方式,实际并不会影响Dataframe存储的数据...设置字段小数位精度一致前面提到的一个例子中,col_1 和 col_2 的小数位精度不一致:图片我们可以通过设置 display.float_format 至 "{:.2f}".format 使格式一致
1 取得唯一行 数据库引擎只要发现满足条件的一行数据则立即停止扫描,,这种情况适用于只需查找一条满足条件的数据的情况 三、 注意组合索引,要符合最左匹配原则才能生效 假设存在这样顺序的一个联合索引“col...,第三条由于没有先匹配 col_1,导致无法命中索引, 另外如果无法保证查询条件里列的顺序与索引一致,可以考虑将联合索引 拆分为多个索引。...,聚簇索引叶子节点上存有主键值+整行数据,非聚簇索叶子节点上则存有辅助索引的列值 + 主键值,如下 ?...所以就算对 COUNT(*) 使用主键查找,由于每次取出主键索引的叶子节点时,取的是一整行的数据,效率必然不高,但是非聚簇索引叶子节点只存储了「列值 + 主键值」,这也启发我们可以用非聚簇索引来优化,假设表有一列叫...),降低性能,而如果我们所要的数据就在组合索引里,只需读取组合索引列,这样网络带宽将大大减少,假设有组合索引列 (col_1, col_2) 推荐用 SELECT col_1, col_2 FROM
如果你对学习如何用Pandas处理大型数据感兴趣,我强烈建议你看一看这篇文章——为什么和如何用Pandas处理大型数据。 3....有些时候,在你字符串类型的列中,你可能要面对换行符或是奇怪的符号的出现。...这个问题可以被df['col_1'].replace轻松解决, 其中,col_1指的是数据帧中的某列。 6....所以列中字符串前有空格的情况时有发生。因此,如果你想移除它们时,这个办法很管用。 7....譬如,你想把第一列和第二列合并,条件是根据第一列中以特定字母们结束的字符串。在合并后,根据你的需要,末尾字母们也可被移除。
True colindexes := { "B": Index(9, fullshuffle, zlib(1)).is_csi=True} In [544]: st.close() 请参阅这里如何在现有存储上创建完全排序索引...对于其他驱动程序,请注意 pandas 从查询输出中推断列 dtype,而不是通过查找物理数据库模式中的数据类型。例如,假设userid是表中的整数列。...它不是公共 API 的一部分,并将在未来的某个时候被删除而没有警告。 分类数据 分类数据可以导出为Stata数据文件,作为带有值标签的数据。导出的数据包括底层类别代码作为整数数据值和类别作为值标签。...要对 categories 和顺序进行更多控制,请提前创建CategoricalDtype,并将其传递给该列的dtype。...URL,用于访问压缩存档中的数据,文件的本地缓存等。
假如有这张一张表,当时创建时没有用来存放递增的数值的int型字段。在使用的过程中,有这样的需求。..._1 NVARCHAR(20), col_2 NVARCHAR(40) );GO code-1:建表 插入测试数据 INSERT INTO T33 (col_1,col_2)SELECT TOP...[name],20),NEWID() FROM sys.objects AS a CROSS JOIN sys.objects AS b;GO code-2:插入数据 这时,如果需要在这张表上增加一列int...除了直接在SSMS的表设计器(添加字段id,并设置为自增列)上做之外,还可以使用脚本来实现。用脚本来实现有一个好处是:如果表已有的数据已经很多时,有很大的优势。...如何添加? ----------2016-01-08 18:00 更新-------- 经过@goto13 的提醒,直接在添加id字段时,指定为自增列就已经可以实现最后的效果了。谢谢!
中查询 col_1 */ SELECT col_1 FROM SomeTable; 多行注释很多人不知道,这种写法不仅可以用来添加真正的注释,也可以用来注释代码,非常方便 3、缩进 就像写 Java...,Python 等编程语言一样 ,SQL 也应该有缩进,良好的缩进对提升代码的可读性帮助很大,以下分别是好的缩进与坏的缩进示例 -- 好的缩进 SELECT col_1, col_2,...MAX(col_2) FROM tbl_B WHERE col_3 = 100 ) GROUP BY col_1, col_2, col_3 4、空格 代码中应该适当留有一些空格,如果一点不留,...我们经常需要按分数,人数,销售额等进行排名,有 Oracle, DB2 中可以使用 RANK 函数进行排名,不过在 MySQL 中 RANK 函数未实现,这种情况我们可以使用自连接来实现,如对以下 Products...八、减少中间表 在 SQL 中,子查询的结果会产生一张新表,不过如果不加限制大量使用中间表的话,会带来两个问题,一是展示数据需要消耗内存资源,二是原始表中的索引不容易用到,所以尽量减少中间表也可以提升性能
如上,我们创建了一个子查询,放在小括号里,并将其命名为sub。...创建链接的方式很简单,如下便是使用WHERE创建链接: SELECT col_1,col_2,col_3 FROM table_1,table_2 WHERE table_1.id = table2.id...; 如上,col_1和col_2属于table_1表中,col_3属于table_2表中,而这两个表使用相同的id列进行匹配。...: SELECT AVG(col_1) AS avg_col_1 FROM table_1; ⚠️聚合函数都会忽略列中的NULL值,但是COUNT(*)也就是统计全部数据的行数时,不会忽略NULL值。...使用示例: COALESCE(col_1,0) -- 将col_1中的NULL值替换为0 COALESCE(col_2,'no DATA') -- 将col_2中的NULL值替换为no DATA 总结
透视表是一种做多维数据分析的工具,还记得 Pandas 的 split-apply-combine 三部曲吗?首先用 groupby 分组,再平行将某个函数应用到各组上,最后自动连接成一个总表。...先看一张图: Pivot 字面意思是支点,即上图中的 index 和 columns 指定的行和列标签,支点可想理解成数据 (values) 在哪个维度上做整合 (aggfunc),再吧 NaN 值用...因为这两列的值是数值型 (int, float),而其他例的值是非数值型 (object),用 df.dtypes 就可看出。...aggfunc 参数还可以传进一个字典来实现不同列下应用不同的整合函数,语法如下: aggfunc = {col_1:func_1, col_2:func_2, ... col_n:func_n} pd.pivot_table...语法如下: aggfunc = {col_1:func_1, col_2:func_list, ... col_n:func_n} 假设第二列传入一个函数列表。
人数,销售额等进行排名,有 Oracle, DB2 中可以使用 RANK 函数进行排名,不过在 MySQL 中 RANK 函数未实现,这种情况我们可以使用自连接来实现,如对以下 Products 表按价格高低进行排名图片图片结果如下...(1,2,3)这样的值列表时,没啥问题,但如果参数是子查询时,就需要注意了。...,只需读取组合索引列,这样网络带宽将大大减少,假设有组合索引列 (col_1, col_2)推荐用SELECT col_1, col_2 FROM SomeTable WHERE col_1 =...通过遵循SQL的书写规范,使用进阶技巧如别名、子查询和连接操作来简化复杂查询,并通过合理创建索引、优化查询逻辑和结构、优化数据库表设计、避免全表扫描以及调整数据库服务器参数等方法来提高查询效率。...3、SQL 的优化方法:合理创建索引、优化查询逻辑和结构、优化数据库表设计、避免全表扫描、调整数据库服务器参数。
说实话,这个问题还真不好回答,为什么要迁移,一定是遇到了某种瓶颈,可能是数据量也可能是数据类型等,于是我咨询了一下业务,最终得到了答案:这个业务中的某些表,要频繁的加字段。...Copy方法 MySQL5.5版本及之前的加列方法:Copy 它的执行示意图如下: 我们有一个原表A,只包含1个字段,它包含1、2、4、6这几条记录,当我们使用Copy算法加列时: 1、创建了一个新的表...可以看到,Copy算法需要拷贝一遍数据,需要额外的存储空间来存储tmp-A这个临时表。另外,在拷贝数据的过程中,表A的写入操作会丢失,也就是说,表A在alter table的过程中不能有数据更新。...另外,这里需要解释下,Copy算法中生成的tmp-A临时表是在Server层面创建的,而上述Online DDL操作中的tmp-file是在插件式存储引擎Innodb内部生成的,我们把这种在Innodb...我们来看它的优势,首先我们创建一个表t1,并插入26w条数据,然后分别添加数据列col_1,col_2,col_3,并显示指定加列的算法为copy、inplace、和instant,结果如下: [test
,那么我们就可以将该列去除掉,代码如下 # Filter out unimportant columns df = df[['col_1','col_2', 'col_3', 'col_4', 'col...转变数据格式 最后我们可以通过改变数据类型来压缩内存空间,一般情况下,Pandas模块会给数据列自动设置默认的数据类型,很多数据类型里面还有子类型,而这些子类型可以用更加少的字节数来表示,下表给出了各子类型所占的字节数...对于内存当中的数据,我们可以这么来理解,内存相当于是仓库,而数据则相当于是货物,货物在入仓库之前呢需要将其装入箱子当中,现在有着大、中、小三种箱子, 现在Pandas在读取数据的时候是将这些数据无论其类型...因此我们优化的思路就在于是遍历每一列,然后找出该列的最大值与最小值,我们将这些最大最小值与子类型当中的最大最小值去做比较,挑选字节数最小的子类型。...我们举个例子,Pandas默认是int64类型的某一列最大值与最小值分别是0和100,而int8类型是可以存储数值在-128~127之间的,因此我们可以将该列从int64类型转换成int8类型,也就同时节省了不少内存的空间
方法,作用是将DataFrame当中的数据存放到数据库当中,请看下面的示例代码,我们创建一个基于内存的SQLite数据库 from sqlalchemy import create_engine engine...orient参数,用来指定字典当中的键是用来做行索引还是列索引,请看下面两个例子 data = {'col_1': [1, 2, 3, 4], 'col_2': ['A', 'B', 'C...col_1 col_2 0 1 A 1 2 B 2 3 C 3 4 D 当然我们也可以将其作为是行索引,将orient设置为是...index df = pd.DataFrame.from_dict(data, orient='index') output 0 1 2 3 col_1 1 2 3 4 col...,将列名作为参数传递到该函数中调用,要是满足条件的,就选中该列,反之则不选择该列 # 选择列名的长度大于 4 的列 pd.read_csv('girl.csv', usecols=lambda x: len
领取专属 10元无门槛券
手把手带您无忧上云