if语句试图确定Series作为一个整体的真实性,而不是比较Series中的每个元素,所以这是错误的。 2 numpy.where() 语法很简单,就像Excel的IF()。...看下面的例子: numpy.where()它从我们的条件中创建一个布尔数组,并在条件为真或假时返回两个参数,它对每个元素都这样做。这对于在Dataframe中创建新列非常有用。...代码如下: 如果添加了.values: 4 更复杂的 有时必须使用字符串,有条件地从字典中查找内容,比较日期,有时甚至需要比较其他行的值。我们来看看!...你可以使用.map()在向量化方法中执行相同的操作。 3、日期 有时你可能需要做一些日期计算(确保你的列已经转换为datetime对象)。这是一个计算周数的函数。...4、使用来自其他行的值 在这个例子中,我们从Excel中重新创建了一个公式: 其中A列表示id,L列表示日期。
依次是日期,收盘价、成交量、开盘价、最高价和最低价 在CSV文件中,每一列数据数据是被“,”隔开的,为了突出重点简化程序,我们把第一行去掉,就像下面这样 ?...,即用今天的收盘价减去昨天的收盘价,再除以昨天的收盘价格。...同时我们发挥NumPy的优势,利用向量运算,可以一次性算出所有交易日的收益率 diff函数时用数组的第N项减第N-1项,得到一个n-1项的一维数组。...,在计算年化波动率时,要用样本中所有的对数收益率的标准差除以其均值,再除以交易日倒数的平方根,一年交易日取252天。...最后我们再介绍两个实用函数,一个是数组的裁剪函数,即把比给定值还小的值设置为给定值,比给定值大的值设置为给定上限 import numpy as np a = np.arange(5) print
我们通过分析苹果公司的股票价格,来串讲NumPy的常用函数用法 我们在我们python文件的同级目录下放置数据文件AAPL.csv,用excel文件可以打开看看里面是什么样的: 依次是日期,收盘价、成交量...现在我们来看看每天的收益率,这个计算式子很简单: ,即用今天的收盘价减去昨天的收盘价,再除以昨天的收盘价格。...同时我们发挥NumPy的优势,利用向量运算,可以一次性算出所有交易日的收益率 diff函数时用数组的第N项减第N-1项,得到一个n-1项的一维数组。...计算历史波动率时需要用到对数收益率,对数收益率很简单,就是 ,依照对数的性质,他等于 ,在计算年化波动率时,要用样本中所有的对数收益率的标准差除以其均值,再除以交易日倒数的平方根,一年交易日取252天。...最后我们再介绍两个实用函数,一个是数组的裁剪函数,即把比给定值还小的值设置为给定值,比给定值大的值设置为给定上限 import numpy as np a = np.arange(5) print
vwap # VWAP = 350.589549353 # mean 函数也能用于计算均值 print "mean =", np.mean(c) # mean = 351.037666667 # 计算时间时间加权均价...t = np.arange(len(c)) print "twap =", np.average(c, weights=t) # twap = 352.428321839 最大最小值 import numpy...处理日期 import numpy as np from datetime import datetime # 将日期映射为星期 # Monday 0 # Tuesday 1 # Wednesday...前一天收盘价减当天最低价的绝对值 import numpy as np import sys # 读入最高价、最低价、收盘价 h, l, c = np.loadtxt('data.csv', delimiter...as np a = np.arange(5) print "a =", a # a = [0 1 2 3 4] # clip 用于剪切数组 # 小于最小值的元素会替换成最小值 # 大于最大值的元素会替换成最大值
在利用肘部法则确定K值时需要建立聚类效果的指标,这时长长会用到求解两个向量之间距离的cdist()方法。...#%% #例10-2 使用肘部法则确定最佳K值, import numpy as np import matplotlib.pyplot as plt import pandas as pd #使用样本生成器生成数据集...) #plt.show() #绘制子图2,肘部法则寻找最佳K值 ax2 = p.add_subplot(1,2,2) DrawElbowKMeans(X=X) plt.show() 在利用K-meanns...4,聚类结果与原类别的对比 ax = p.add_subplot(2,2,4) #获取错误聚类样本的索引 index_wrong=np.where(labels!...']) plt.title('聚类错误样本与原类别的对比') plt.show() 多分类样本的可视化 #%% #例10-5 对4个分类样本进行聚类,使用肘部法则确定最佳K值, #使用特征集进行聚类
image.png 5.8 缺失值处理 缺失值数据在大部分数据分析应用中都很常见,pandas的设计目标之一就是让缺失数据的处理任务尽量轻松。 pandas对象上的所有描述统计都排除了缺失数据。...复习字符串对象的4个方法:join方法连接字符串、 find方法寻找子字符串出现的索引位置、count方法返回子字符串出现的次数、 replace方法用来替换。...Pandas中的时间序列 不管在哪个领域中(如金融学、经济学、生态学、神经科学、物理学等),时间序列数据都是一种重要的结构化数据形式。在多个时间点观察或者测量到的任何事物都是可以形成一段时间序列。...image.png 7.3 Pandas中的时间序列 pandas通常是用于处理成组日期的,不管这个日期是DataFrame的轴索引还是列。to_datetime方法可以解析多种不同的日期表示形式。...对标准日期形式的解析非常快。 to_datetime方法可以处理缺失值,缺失值会被处理为NaT(not a time)。 ?
今日锦囊 特征锦囊:时间序列建模的时间戳与时序特征衍生思路 时间序列模型在我们日常工作中应用的场景还是会很多的,比如我们去预测未来的销售单量、预测股票价格、预测期货走势、预测酒店入住等等,这也是我们必须要掌握时序建模的原因...1)Y值:我们也称之为时序值。如下表中的销量字段; 2)时间戳:标记本条记录发生时间的字段,如下表中的统计日期字段。...1)时间戳本身特征 直接使用Pandas的series提取时间戳特征,比如说哪年、哪季度、哪月、哪周、哪日、哪时、哪分、哪秒、年里的第几天、月里的第几天、周里的第几天。...在使用此类特征的时候,要注意一下多步预测的问题。 2)lag滞后值 lag可以理解为向前滑动时间,比如lag1表示向前滑动1天,即取T-1的时序值作为当前时序的变量。...05 时序值的衍生代码分享 1)时间滑动窗口统计 因为方法叫做Rolling Window Statistics,所以代码里关于这块的实现也有1个叫rolling的方法,这个方法在时序建模中很好用,后面单独一篇文章讲下
一个常见的需求:按条件分组后,取出每组中某字段最大值的那条记录。其实就是组内排序的问题,我的做法是:子查询先进行倒序排序,外层查询分组。...NO_ZERO_DATE 在严格模式,不要将 ‘0000-00-00’做为合法日期。你仍然可以用 IGNORE 选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。...NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常。...;而开启 STRICT_ALL_TABLES 后,则表现为不写入数据,且抛出错误。...严格模式下,无默认值的 NOT NULL 字段在插入数据时必须指定值。 非严格模式下,若不插入数据会存储字段类型的默认值。 严格模式下,报错。
8.15 s ± 722 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) 但是这种方法的执行速度非常慢,如果涉及数据量更大,那么无疑非常消耗时间...np.where np.where给定一个条件表达式,当条件表达式为真或假时返回对应的值。 %%timeit # Pandas Series Vectorized baby!!...` w/ numpy vectorization is {round((8.15 * 1000) / 9.59, 1)}x faster than `.apply`") `np.where` w/ numpy...vectorization is 849.8x faster than `.apply` 当使用 raw=True选项时,会显著改善.apply的速度。...逻辑表达式所需要的值在其他行 此任务主要是想实现Excel中的函数: =IF(A2=A1, IF(L2-L1 < 5, 0, 1), 1)) A列表示id,L列表示日期。
的统计特性 np.sum(),返回求和 np.mean(),返回均值 np.max(),返回最大值 np.min(),返回最小值 np.ptp(),数组沿指定轴返回最大值减去最小值,即(max-min)...1.79515205 -0.88493701 -0.42676191 0.05635219 0.37449618 0.70150419 0.80712566 1.52654468] 二维数组也可以在某些维度上排序...0.55690543] [-1.29064181 0.55382507 0.79843566] [ 0.13107927 0.24467205 0.69978121]] 找出排序后位置在5%...1时,这个数组能够用来计算,否则出错 当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值 总结 where和一些其他的逻辑运算 np.where(cond,x,y):满足条件(cond)...指南]http://docs.scipy.org/doc/numpy/reference/ [numpy ndarray详解]https://danzhuibing.github.io/py_numpy_ndarray.html
在非严格模式下,MySQL会对某些数据插入、更新和比较操作执行隐式转换,从而在一些情况下允许执行一些宽松的操作,而不抛出错误或警告。...涉及的主要参数说明如下: a) STRICT_TRANS_TABLES:在插入或更新数据时,禁止自动转换类型,确保所有数据都符合表定义的数据类型范围。如果值无法转换为合法的数据类型,则抛出错误。...e) ERROR_FOR_DIVISION_BY_ZERO:当除数为零时,抛出错误而不是返回NULL。...简单举例 以下是一些非严格模式下可能出现的案例情况: 1) 非严格的日期和时间插入:在非严格模式下,MySQL允许插入不符合日期和时间格式的值,会自动进行转换或舍入 eg: 不合法的日期值'0000...:在非严格模式下,MySQL允许grant语句中如果用户不存在时自动创建用户 eg: grant select on db1)tb1 to test; 11) 非严格的存储引擎自动替代: 在非严格模式下
这使NumPy能够无缝且高速地与各种数据库进行集成。 1. allclose() Allclose() 用于匹配两个数组并且以布尔值形式输出。如果两个数组的项在公差范围内不相等,则返回False。...有时,需要将值保持在上限和下限之间。因此,可以使用NumPy的clip()函数。给定一个间隔,该间隔以外的值都将被裁剪到间隔边缘。 ...它返回在特定条件下值的索引位置。这差不多类似于在SQL中使用的where语句。请看以下示例中的演示。 ...:日期范围生成和频率转换、移动窗口统计、日期移位和滞后。 ...将数据帧分配给另一个数据帧时,在另一个数据帧中进行更改,其值也会进行同步更改。为了避免出现上述问题,可以使用copy()函数。
在进行数据分析时,确保使用正确的数据类型是很重要的,否则我们可能会得到意想不到的结果或甚至是错误结果。...,无需担心是否应该尝试显式地将 pandas 类型强制为对应于 NumPy 类型。...在 sales 列中,数据包括货币符号以及每个值中的逗号;在 Jan Units 列中,最后一个值是“Closed”,它不是数字 我们再来尝试转换 Active 列 df['Active'].astype...np.where() 方法对许多类型的问题都很有用,所以我们选择在这里使用 基本思想是使用 np.where() 函数将所有“Y”值转换为 True 并将其他所有值转换为 False df["Active...如果我们尝试使用 astype() 我们会得到一个错误(如前所述)。
在这种模式下,如果有任何警告或错误,将会回滚事务。这可以确保数据的完整性。NO_ZERO_DATE:禁止在日期或时间列中插入“0000-00-00”或“00:00:00”的值。...在这种模式下,SELECT语句中的所有列都必须在GROUP BY子句中列出。ERROR_FOR_DIVISION_BY_ZERO:在进行除零运算时,将产生错误而不是警告。...通过设置sql_mode,我们可以确保MySQL在执行查询时遵循严格的规则,从而避免意外的错误。...例如,如果我们尝试在日期列中插入“0000-00-00”或“00:00:00”的值,MySQL将会抛出错误,而不是插入这些无效的值。...另外,如果我们尝试使用GROUP BY子句对未在SELECT语句中列出的列进行分组,MySQL将会抛出错误。这可以帮助我们避免分组错误,确保查询结果的正确性。
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/33 本文地址:http://www.showmeai.tech/article-detail...不止是空数组,通过上述方法还可以将数组填充为特定值: [460548c79ec1dec2f5d279ac0da368c4.png] 在NumPy中,还可以通过单调序列初始化数组: [9e66958ddf9aedbc9970ba91bf4f19f9...如下图 np.where 和 np.clip 两个专有函数。...import * 时与Python around的冲突(但一般的使用方式是import numpy as np)。...如果数组是排好序的,使用v = np.searchsorted(a, x); return v if a[v]==x else -1时间复杂度为O(log N),但在这之前,排序的时间复杂度为O(N log
NaN 结果的操作中抛出异常。...子包中找到更多的操作函数 >>> import numpy.linalg >>> # Determinant >>> numpy.linalg.det(m) -229.99999999999983 >>...基本的日期与时间转换 「你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。」 为了执行不同时间单位的转换和计算,请使用 datetime 模块。...然后用开始日期减去那个时间差即得到结果日期。...而你的朋友在印度的班加罗尔,那么他应该在当地时间几点参加这个会议呢?」 几乎所有涉及到时区的问题,你都应该使用 pytz 模块。
因此,如果你正巧也在这个领域中,或者计划进入这个领域,那么处理这些杂乱不规则数据是非常重要的,这些杂乱数据包括一些缺失值,不连续格式,错误记录,或者是没有意义的异常值。...学习之前假设你已经有了对Pandas和Numpy库的基本认识,包括Pandas的工作基础Series和DataFrame对象,应用到这些对象上的常用方法,以及熟悉了NumPy的NaN值。...改变DataFrame的索引 Pandas索引index扩展了Numpy数组的功能,以允许更多多样化的切分和标记。在很多情况下,使用唯一的值作为索引值识别数据字段是非常有帮助的。...因此,我们需要做以下的一些事情: 移除在方括号内的额外日期,任何存在的:1879[1878]。 将日期范围转化为它们的起始日期,任何存在的:1860-63;1839,38-54。...完全移除我们不关心的日期,并用Numpy的NaN替换:[1879?]。 将字符串nan转化为Numpy的NaN值。
如果排序列的是数字类型,数据库就按照数字大小排序,如果是日期类型,就按照日期大小排序,如果是字符串就按照字符串集序号排序。...当SELECT DISTINCT后面跟多个字段时,同样也会做去重(按上面说的重复的定义来判断)。...只不过视频中的数据在同时选择job和ename时,没有job和ename都相同的行,所以看起来像是没有做去重,像是“去重失效了”,实际上并没有失效,只是确实没有重复而已。...,第二个日期)可以返回第一个日期减去第二个日期的天数 NOW()获取当前日期和时间 比较运算符 MySQL IN运算符简介....IN 运算符允许你确定一个指定的值在一组值匹配的任何值或 子查询 。
领取专属 10元无门槛券
手把手带您无忧上云