首先,准备测试数据,11g库表bisal的id1列是主键(确保id1列为非空),id2列包含空值, ?...前三个均为表数据总量,第四个SQL结果是99999,仅包含非空记录数据量,说明若使用count(允许空值的列),则统计的是非空记录的总数,空值记录不会统计,这可能和业务上的用意不同。...其实这无论id2是否包含空值,使用count(id2)均会使用全表扫描,因此即使语义上使用count(id2)和前三个SQL一致,这种执行计划的效率也是最低的,这张测试表的字段设置和数据量不很夸张,因此不很明显...总结: 11g下,通过实验结论,说明了count()、count(1)和count(主键索引字段)其实都是执行的count(),而且会选择索引的FFS扫描方式,count(包含空值的列)这种方式一方面会使用全表扫描...,另一方面不会统计空值,因此有可能和业务上的需求就会有冲突,因此使用count统计总量的时候,要根据实际业务需求,来选择合适的方法,避免语义不同。
一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,问题如下:大佬们,请教个小问题,我要查找某列中具体的值,譬如df[df['作者'] == 'abc'],但实际上这样子我找不到...ABC,因为对方实际是小写的abc。...给了一个指导,如下所示: 全部转大写或者小写你就不用考虑了 只是不确定你实际的代码场景。后来【论草莓如何成为冻干莓】给了一份代码,如下图所示: 顺利地解决了粉丝的问题。...但是粉丝的需求又发生了改变,下一篇文章我们一起来看看这个“善变”的粉丝提问。 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
他的代码照片如下图: 这个代码这么写,最后压根儿就没有得到他自己预期的结果,遂来求助。这里又回归到了他自己最开始的需求澄清!!!论需求表达清晰的重要性!...二、实现过程 后来【莫生气】给了一份代码,如下图所示: 本以为顺利地解决了问题,但是粉丝又马上增改需求了,如下图所示: 真的,代码写的,绝对没有他需求改的快。得亏他没去做产品经理,不然危矣!...能给你做出来,先实现就不错了,再想着优化的事呗。 后来【莫生气】给了一个正则表达式的写法,总算是贴合了这个粉丝的需求。 如果要结合pandas的话,可以写为下图的代码: 至此,粉丝不再修改需求。...这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。 最后感谢粉丝【上海新年人】提出的问题,感谢【鶏啊鶏。】...、【论草莓如何成为冻干莓】、【冯诚】给出的思路,感谢【莫生气】等人参与学习交流。
一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,但是粉丝又改需求了,需求改来改去的,就是没个定数。 这里他的最新需求,如上图所示。...他的意思在这里就是要上图中最下面这3个。 二、实现过程 后来【论草莓如何成为冻干莓】给了一份代码,如下图所示: 顺利地解决了粉丝的问题。...可以看到,代码刚给出来,但是粉丝的需求又发生了改变,不过不慌,这里又给出了对应代码,如下图所示: 一看就会,一用就废,粉丝自己刚上手,套用到自己的数据里边,代码就失灵了。...下一篇文章,我们再来看这位粉丝新遇到的问题。 三、总结 大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【上海新年人】提出的问题,感谢【鶏啊鶏。】、【论草莓如何成为冻干莓】给出的思路,感谢【莫生气】等人参与学习交流。
一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据处理的问题,一起来看看吧。 大佬们,如何把某一列中包含某个值的所在行给删除?比方说把包含电力这两个字的行给删除。...这里【FANG.J】指出:数据不多的话,可以在excel里直接ctrl f,查找“电力”查找全部,然后ctrl a选中所有,右键删除行。...二、实现过程 这里【莫生气】给了一个思路和代码: # 删除Column1中包含'cherry'的行 df = df[~df['Column1'].str.contains('电力')] 经过点拨,顺利地解决了粉丝的问题...后来粉丝增加了难度,问题如下:但如果我同时要想删除包含电力与电梯,这两个关键的,又该怎么办呢? 这里【莫生气】和【FANG.J】继续给出了答案,可以看看上面的这个写法,中间加个&符号即可。...顺利地解决了粉丝的问题。 但是粉丝还有其他更加复杂的需求,其实本质上方法就是上面提及的,如果你想要更多的话,可以考虑下从逻辑 方面进行优化,如果没有的话,正向解决,那就是代码的堆积。
本次的练习是:如下图1所示,单元格区域A1:D6中是一系列数据,其中包含空单元格,现在要将它们放置到一列中,并删除空单元格,如图中所示的单元格区域G1:G13,如何使用公式实现? ?...因此,如果结果大于单元格F1中的值,则公式结果为空,否则执行IF语句的第2部分。...这个结果传递给INDIRECT函数: INDIRECT(“R1C00004”,0) 结果将取出第1行第4列中的值,即单元格D4中的值。 为什么选用10^5,并且使用R0C00000作为格式字符串呢?...使用足够大的数值,主要是为了考虑行和列扩展后能够准确地取出相应行列所在单元格的数据。 注意到,在TEXT函数中,先填充C之后的五个零,剩下的在填充R之后的部分。...这个公式的缺点是,当下拉很多行时,如果有许多行都为空,则仍会进行很多的计算,占有资源,不会像前面给出的公式,第一个IF判断为大于非空单元格值后,直接输入空值。有兴趣的朋友可以仔细研究。
本次的练习是:这个练习题与本系列上篇文章的练习题相同,如下图1所示,不同的是,上篇文章中将单元格区域A1:D6中的数据(其中包含空单元格)转换到单独的列(如图中所示的单元格区域G1:G13)中时,是以行的方式进行的...这里,需要以列的方式进行,即先放置第1列中的数据、再放置第2列中的数据……依此类推,最终结果如图中所示的单元格区域H1:H13,如何使用公式实现? ? 图1 先不看答案,自已动手试一试。..."),{8,2},5) 应该获取单元格C2中的值,即数据区域的第2行第3列。...R00000C00000”),0) 变为: INDIRECT(TEXT(200003,”R00000C00000”),0) 变为: INDIRECT(“R00002C00003”,0) 即获取单元格C2中的值...相关参考 Excel公式练习32:将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格 Excel公式练习4:将矩形数据区域转换成一行或者一列
表——单列日期表 C) 注意事项 通常用于创建日历表 最好是包含整年时间 D) 作用 生成2个时间点之间的时间列表 E) 案例 CALENDAR(date(2018,1,1),DATE(2018,12,31...Calendarauto A) 语法 CALENDARAUTO([fiscal_year_end_month]) 位置 参数 描述 可选第1参数 不填写 生成表中最小年份到最大年份的全部日期 可选第1参数...填写1-12的月份数字 往前推或者往后延做成年份日期表 B) 返回 表——单列日期表 C) 注意事项 如果数据表中没有日期列则会出错 参数为正数则表示会计年份从1月往后算,负数则是从1月往前算。...D) 作用 自动生成会计日期列 E) 案例 自动生成时间日历表 CALENDARAUTO() 如果数据模型的日期范围是2018/5/1—2019/6/30,则生成的日期表范围为2018/1/1—2019.../12/31 生成会计年度为每年4月 CALENDARAUTO(3) 如果数据模型的日期范围为2018/1/1—2018/12/31,则生成的日期表范围为2017/4/1—2019/3/31。
根据书中的「处理Excel电子表格」章节内容,做出一份专属日历。 使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块。 实现自动化处理表格信息,摆脱无趣无味。.../ 01 / 科普 在进行代码操作前,简单对相关知识做个简单的学习。 一个Excel电子表格文档称为一个工作䈬。 一个工作䈬保存在扩展名为「.xlsx」的文件中。...划重点,openpyxl只支持「.xlsx」类型的格式。 所以对于Excel2003版「.xls」格式是不支持的。 每个工作䈬可以包含多个表,又称为工作表。...返回1月份每列信息情况。...calendar.monthcalendar(2019, i)[j])): value = calendar.monthcalendar(2019, i)[j][k] # 将0值变为空值
根据书中的「处理Excel电子表格」章节内容,做出一份专属日历。 使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块。 实现自动化处理表格信息,摆脱无趣无味。.../ 01 / 科普 在进行代码操作前,简单对相关知识做个简单的学习。 一个Excel电子表格文档称为一个工作䈬。 一个工作䈬保存在扩展名为「.xlsx」的文件中。...划重点,openpyxl只支持「.xlsx」类型的格式。 所以对于Excel2003版「.xls」格式是不支持的。 每个工作䈬可以包含多个表,又称为工作表。...返回1月份每列信息情况。...原来小F的爱豆是胡歌,那么你的又是谁。 还不去动动手,做出属于自己的爱豆日历。 这里小F由于时间关系,忘记给星期六、星期日这两列更改字体颜色。 小伙伴们在尝试的时候,记得更改!!!
/ 01 / 科普 在进行代码操作前,简单对相关知识做个简单的学习。 一个Excel电子表格文档称为一个工作簿。一个工作簿保存在扩展名为「.xlsx」的文件中。...划重点:openpyxl只支持「.xlsx」类型的格式。所以对于Excel2003版「.xls」格式是不支持的。 每个工作簿可以包含多个表,又称为工作表(sheet)。...返回1月份每列信息情况。...剩下的就是字体设置、背景颜色设置、增加年份/月份/星期的标注,不再一一赘述,大家看代码中的注释即可。...生成完就可以打印出来,你的专属属爱豆日历 get√ 这里我都用了同一张图片,另外也没给星期六、星期日这两列更改字体颜色。
对于RFM总得分的计算有两种方式,一种是直接将3个值拼接到一起,例如RFM得分为312、333、132;另一种是直接将3个值相加求得一个新的汇总值,例如RFM得分为6、9、6。... 数据介绍 案例数据是某企业从2015年到2018年共4年的用户订单抽样数据,数据来源于销售系统 数据在Excel中包含5个sheet,前4个sheet以年份为单位存储为单个sheet中,最后一张会员等级表为用户的等级表...1]来过滤出包含订单金额>1的记录数,然后替换原来sheet_datas中的dataframe 最后一行代码的目的是在每个年份的数据中新增一列max_year_date,通过each_data['提交日期...F和M的规则是值越大,等级越高 而R的规则是值越小,等级越高,因此labels的规则与F和M相反 在labels指定时需要注意,4个区间的结果是划分为3份 将3列作为字符串组合为新的分组 代码中,先针对...第1行代码使用数据框的groupby以rfm_group和year为联合对象,以会员ID会为计算维度做计数,得到每个RFM分组、年份下的会员数量 第2行代码对结果列重命名 第3行代码将rfm分组列转换为
标签:Python与Excel,pandas 在Excel中,我们可以通过先在单元格中编写公式,然后向下拖动列来创建计算列。在PowerQuery中,还可以添加“自定义列”并输入公式。...在Python中,我们创建计算列的方式与PQ中非常相似,创建一列,计算将应用于这整个列,而不是像Excel中的“下拉”方法那样逐行进行。要创建计算列,步骤一般是:先创建列,然后为其指定计算。...首先,我们需要知道该列中存储的数据类型,这可以通过检查列中的第一项来找到答案。 图4 很明显,该列包含的是字符串数据。 将该列转换为datetime对象,这是Python中日期和时间的标准数据类型。...图6 数据类型转换 & 数据框架上的简单算术运算 最后,我们将使用“成年年份”列来计算公司的年龄。...df['成立年份'] = df['成立时间'].str.split("-",expand=True)[0] 无需检查数据类型,我们知道这个新创建的列包含字符串数据,因为.split()方法将返回一个字符串
合乎数据可视化规范的表结构设计包含以下要素: 1. 第一行为表头,即表格列标题。很多人喜欢在第一行合并单元格,填写***表,这是不利于后期数据分析的; 2....单一表头,没有多层级的表头和合并单元格; 3. 数值列建议不要有空值; 4. 没有小计行、小计列; 5. 不支持有宏算法或函数算法数据表格; ? 如上图所示,就是在Excel中常见的是二维表。...PART TWO 如何将二维表转化为一维表?...因为对合并单元的拆分,表格中有很多null空值,选中第一列,点击转换——填充——向下,对空值数据进行向下填充; ? 此时,第一列的空值数据就会被补齐。 ? 4....之前我们没有选择分隔符,可以按字符数进行分割,年份(2015)是4个字符。 ? ? 10. 点击开始——关闭并上载,就完成了一维表的转换。 ?
就像在 Excel 数据透视表中一样,会发现默认值是数字列的【求和】和基于文本列的是【计数】。但与 Excel 不同的是,还会发现一个【不要聚合】 的选项,将在本书后面的章节中将使用这个选项。...图 7-12 讨厌的东西,如何将其规范化 在这个文件中,有如下两个问题需要考虑。 厨师职位包含 “Grill,Prep 和 Line” 都在一列中,用 “/” 字符分开。...在 “Days” 列中包含了一周中的多个天。 为什么有人会以这种方式设置他们的数据,这超出了用户的工作范围,但现实是,清理这些数据的工作是留给用户的。...因为现在对应【今年】的年份是 2022 年,而不是 2021 年。 此外 Excel 的默认筛选器允许用户选择【年】、【月】或【日】,即使数据集中只有一个日期列。...它包含 53,513 行交易数据,涵盖 7 年和 48 个州。如果用户只想看到按年份划分总销售额和总数量呢?
性能问题:当表中包含大量列或者某些列的数据量较大时,使用SELECT *查询会导致查询结果集的大小增加,从而降低查询性能。此外,如果查询结果集中包含大量不需要的列,还会增加网络传输的开销。 2....可读性问题:当表中包含大量列时,使用SELECT *查询会导致查询结果集的可读性降低。这会使得开发人员在查看查询结果时更加困难,增加调试和维护的难度。 3....以下是一个简单的示例,展示了如何将表中的行数据转换为列数据。 假设有一个名为sales的表,包含以下字段:id(销售人员ID)、year(销售年份)和amount(销售额)。...表结构如下: CREATE TABLE t_sales ( id INT, year INT, amount DECIMAL(10, 2) ); 现在,要将销售额按年份进行汇总,并将每个年份的销售额作为一个单独的列显示...当year字段的值等于指定的年份时,CASE语句返回amount字段的值,否则返回0。然后,使用SUM聚合函数对每个年份的销售额进行求和。 需要注意的是,这种方法适用于已知的列数。
它不仅仅包含各种数据处理的方法,也包含了从多种数据源中读取数据的方法,比如Excel、CSV等,这些我们后边会讲到,让我们首先从Pandas的数据类型开始学起。...DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同值的类型,数值、字符串、布尔值都可以。...,我们可以使用如下代码直接访问一列的值: print(frame_data['96年']) # 直接访问这一列的值 我们有一个根据日期自动生成索引的方法,首先我们先来生成一个日期的范围,代码如下: import...参数data,指的是你的数据集。 参数values,指的是要用来观察分析的数据值,就是Excel中的值字段。 参数index,指的是要行索引的数据值,就是Excel中的行字段。...参数columns,指的是列索引的数据值,就是Excel中的列字段。 参数aggfunc,指的是数据的统计函数,默认为统计平均值,也可以指定为NumPy模块中的其他统计函数。
br将contents内容分为三段 所以,yearline=item.find('div','bd').p.contents[2].string这句话得到的是1994 / 美国 / 犯罪 剧情这行,但实际上它还包含了很多空格和回车换行符号的...输出和复制到excel print(title,'\t',year),中间的'\t'是制表符,我们可以直接鼠标选择output输出的内容,右键复制,然后打开excel新建空白文件,然后选择合适的表格区域范围...4.生成统计数据 我们把采集到的数据粘贴到Excel文件中,最顶上插入一行【影片名、年份】。 Excel数据 接下来我们利用这些数据研究一下哪些年盛产好电影。 如上图,点击B栏全选这一列。...创建数据透视表 然后在右侧把年份拖拽到下面的行中。 拖拽到行 同样再拖拽到值里面。...拖拽到值 然后点击表格里面的【求和项:年份】,再点击【字段设置】,弹窗中选择【计数】,然后确认,就能统计出每个年份上映的电影数量。
:C12) 4、指定多个范围单元格获取非空数值的个数 =COUNT(C8,C10,C12,F4:F12) 7、非空计数函数COUNTA() 统计区域内包含文本和逻辑值的单元格个数。...1、获取指定单元格在范围内进行排名 =RANK(C3,C2:C11) 9、排名次函数RANK.EQ() 与RANK函数用法一致 返回一列数字的数字排位。...*year* 参数的值可以包含一到四位数字。Excel 将根据计算机正在使用的日期系统来解释 *year* 参数。...因此,使用四位数的年份可避免混淆。 如果 *year* 介于 0(零)到 1899 之间(包含这两个值),则 Excel 会将该值与 1900 相加来计算年份。...如果 *year* 介于 1900 到 9999 之间(包含这两个值),则 Excel 将使用该数值作为年份。例如,DATE(2008,1,2) 将返回 2008 年 1 月 2 日。
领取专属 10元无门槛券
手把手带您无忧上云