首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 Python 进行财务数据分析实战

aapl['diff'] = aapl.Open - aapl.Close del aapl['diff'] 这段代码创建一个名为“diff”的新列,该列表示“开盘价”和“收盘价”值之间的差异。...首先,对数据进行重新采样,以获取每个月的最后一个工作日,并使用lambda函数选择每个月的最后一个数据点,创建了名为monthly的新时间序列。...而位置列则用来捕获信号的变化,并在生成新信号时显示。 总的来说,这段代码实现了一个简单的移动平均线交叉策略,用于交易苹果股票。...股份数量通过将买入或卖出信号乘以 100 来计算,创建一个名为“portfolio”的新数据框来计算“AAPL”股份的市场价值。...通过对每日平均收益进行标准化,使用标准差来计算夏普比率,以确定风险调整后的收益。 夏普比率的年化值是将其乘以 252 的平方根,代表一年中的典型交易日数。

95510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    pandas入门3-2:识别异常值以及lambda 函数

    原因是transform将使dataframe的形状(行数和列数)保持不变,而apply则不会。通过查看前面的图表,可以发现它们不像高斯分布,这意味着不能使用像mean和stDev这样的汇总统计。...我们留下了一个由State和StatusDate索引的数据集。Outlier列中的False表示该记录不是异常值。...,最大客户数为901.如果我们使用了apply,我们将得到一个数据框(年份和月份)作为索引,只有Max列值为901。...利用上面的数据可以衡量当前客户的数量是否达到公司已建立的某些目标。这里的任务是直观地显示当前客户的数量是否符合下面列出的目标。...如果还需要预测明年的客户数量,可以通过几个简单的步骤来实现。首先按年度对组合dataframe进行分组,并将该年度的最大客户数量放在一起。这样的话,每一行表示一年的数据。

    98510

    如何以正确的方法做数据建模?

    一般情况下,按建模的规律,我们可以分为三种不同的类型:如下: ? 当报表要求简单且不复杂时,对一组数据建模的最简单方法有时是将其转换为一个单一的平面表:你可以添加一列值,或者通过其他列进行过滤。...但是,如果销售目标是在月份级别而不是在日期级别应用的,则它们必须存储在单独的事实表中。 维度模型的本质是星型模式,这里简化为显示一个与维度相关的事实表。 ? 星型模型设计的实际应用如上图所示。...这些列还可以用于执行更复杂的计算,如比率、运行总计和时间序列比较。 4 维度概念 现在,让我们回顾一些常见的实用维度建模。 1 角色扮演维度 维度实体可以在报告中扮演多个角色。...在平面表中,三个日期列有完全不同的用途,但都存储相同类型的值:日期。但是,日期可以用来对数据进行分组和聚合,比如月份、季度、年份或会计期间。它们可用于执行时间序列计算,如上一年的月至今或同期。...传统的方法是使用桥接表,该桥接表包含将两个表关联在一起的所有键组合。在下面的示例中,“客户”和“产品”维度表通常有一个从关系的“一方”到“多方”的单向过滤器。

    3.2K10

    Power Pivot智能日期运用——连续时间(2)

    返回 表——单列时间数据的表 C. 注意事项 返回的结果必须是在参数1中的范围 如果起始日期为空值,则默认日期列中最早的一个值为起始日期;如果结束日期为空值,则默认日期列中最后一个值。 D....案例 DATESBETWEEN('日历'[Date],date(2018,2,1),date(2018,6,31)) 返回2018/2/1-2018/6/31日的时间列,但是因为6月份只有30天,所以会自动顺延一天...,实际返回的是2018/2/1-2018/7/1的时间列。...PARALLELPERIOD('日历'[Date],1,MONTH)) 往后偏移1年销售额:=CALCULATE([销售金额],PARALLELPERIOD('日历'[Date],1,YEAR)) 计算当前行上下文日期所属的月份的上个月的销售金额...计算当前行上下文日期所属的月份的下个月的销售金额。 计算当前行上下文日期所属的年份的下一年的销售金额。 ? 请点个赞,转发分享给更多的人。

    90220

    无惧双十二Or 黑五,这些 MySQL 性能调优技巧看过来

    这个词是由零售业在 2000 年代中期左右发明的,试图延长他们的节礼日销售)达到购物高潮。对于企业主来说,一年的这个时候标志着人们期待已久的年底获利了结。...例如,如果 Web 服务器配置为最多为 256 个客户端提供服务,MySQL 请求与 Web 请求的比率为 1/8,则最好将最大数据库连接数设置为 32。...如果临时表的大小超过这个阈值,则将其转换为磁盘上的 InnoDB 或 MyISAM 表。此外,如果查询涉及 BLOB 或 TEXT 列,而这些列不能存储在内存表中,临时表总是直接指向磁盘。...默认值为 0(无缓存),这将导致为每个新连接设置一个线程,并在连接终止时需要处理该线程。...在状态栏以百分比形式显示该值;它的值越接近 100%越好。 如果这些指标的值等于或超过指定值,则可以将每一个指标配置为发出警告和 / 或严重警报。

    77090

    2.16 PowerBI数据建模-时间智能函数

    在日期维度上做分析,本质上是给度量值修改日期上下文,在日期维度上实现日期的平移、范围扩大或缩小,生成一个新的日期或日期区间,然后做运算,比如去年同期、YTD累计、滚动3个月平均、期末库存等。...指定时间点STARTOFMONTH当前上下文中指定日期列的月份的第一个日期。指定时间点STARTOFQUARTER当前上下文中指定日期列的季度的第一个日期。...指定时间点STARTOFYEAR当前上下文中指定日期列的年份的第一个日期,可指定年度结束日期。指定时间点ENDOFMONTH当前上下文中指定日期列的月份的最后一个日期。...指定时间段NEXTQUARTER当前上下文中的日期的第一个日期的下一个季度的所有日期。指定时间段NEXTYEAR当前上下文中的日期列的第一个日期的下一年的所有日期,可指定年度结束日期。...日期表和事实表建立关系的列,如果日期列是日期类型,可标记也可不标记;如果日期列是数字类型,比如20240101,必须标记,否则返回的结果可能会出现错误。因此,建议标记日期表。

    6210

    极具参考价值的MySQL性能调优技巧

    这个词是由零售业在2000年代中期左右发明的,试图延长他们的节礼日销售)达到购物高潮。对于企业主来说,一年的这个时候标志着人们期待已久的年底获利了结。...例如,如果Web服务器配置为最多为256个客户端提供服务,MySQL请求与Web请求的比率为1/8,则最好将最大数据库连接数设置为32。还要考虑留有安全余量,把这个数乘以2,得到最终的数量。...此外,如果查询涉及BLOB或TEXT列,而这些列不能存储在内存表中,临时表总是直接指向磁盘。...请记住,这将需要大量内存,因为内存中临时表的大小是基于“最坏情况”的。例如,内存表总是使用固定长度的列,所以字符列使用VARCHAR(255)。...在状态栏以百分比形式显示该值;它的值越接近100%越好。 如果这些指标的值等于或超过指定值,则可以将每一个指标配置为发出警告和/或严重警报。

    80660

    一步一步教你制作销售业绩分析报告

    1、使用Excel文件创建日期表   新建Excel文件,在Excel工作表中手动填写相应日期字段(注意:第一列日期列是必须列,其他日期字段大家可以按需求添加即可) ?   ...DATEADD主要有三个参数,第一个参数日期列表,第二个和第三个参数组合代表向前推一年,去年同期的销售数据。   ...month.上月是对比月份滚动计算的。...累计销售额是指从某年的1月1日到当前的销售额,累计销售额和年度销售目标或者去年累计销售额做对比查看销售情况。...设置格式需要注意,同比比率是不可累加指标。所以这里需要设置聚合类型为区去最后的值。设置完成后再根据年月进行排序。 ?

    5.4K21

    使用时间特征使让机器学习模型更好地工作

    特征工程是构建机器学习模型最重要的方面之一。在本文中,我将通过一个实际示例讨论如何从 DateTime 变量中提取新特征以提高机器学习模型的准确性。...一年中的一天或一个月中的一天或一周中的一天 一年中的某一天是指 1 到 365(或 366)之间的数字。...一年中的月份 一年中的月份指的是 1 到 12 之间的数字。...如果 DF中有 DateTime 列,则可以按如下方式提取一年中的月份: df['month_sin'] = np.sin(2 * np.pi * df['date_time'].dt.month/12.0...此示例的目的是构建一个多类分类器,该分类器根据输入特征预测天气状况(由数据集的摘要列给出)。我计算了两种情况的准确性:有和没有 DateTime特征。 加载数据集 该数据集可在 Kaggle 上获得。

    1.7K10

    独家 | 将时间信息编码用于机器学习模型的三种编码时间信息作为特征的三种方法

    标签:时间帧,机器学习,Python,技术演示 想象一下,你刚开始一个新的数据科学项目。目标是建立一个预测目标变量Y的模型。...然后,我们创建两列: day_nr – 表示时间流逝的数字索引; day_of_year – 一年中的第几天; 最后,我们需要创建时间序列本身。为此,我们结合了两条变换后的正弦曲线和一些随机噪声。...由于曲线的重复性,如果你在一年内画一条水平直线,你会在两个地方穿过曲线。这不足以让模型理解观察的时间点。但有了这两条曲线,就不存在这样的问题,使用者可以识别每一个时间点。...在我们的例子中,这是包含给定观察来自一年中哪一天的信息的列。 输入的范围——在我们的例子中,范围是从 1 到 365。 如何处理我们将用于拟合估计器的 DataFrame 的剩余列。...每条曲线都包含有关我们与一年中某一天的接近程度的信息(因为我们选择了该列)。例如,第一条曲线测量的是从 1 月 1 日开始的距离,因此它在每年的第一天达到峰值,并随着我们远离该日期而对称地减小。

    2K30

    MySQL-学习笔记

    ','2022-11-11 10:10:10'); -- 如果我们更新b_name表的某条记录,login_time列会自动的以当前时间进行更新 表操作 创建表 CREATE TABLE 表名(...可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。...事务细节讨论 1.如果不开始事务,默认情况下,dml 操作是自动提交的,不能回滚 2.如果开始一个事务,你没有创建保存点,你可以执行 rollback,默认就是回退到你事务开始的状态 3.你也可以在这个事务中...2.一致性(Consistency) 事务必须使数据库从一个一致性状态变换到另外一个一致性状态 3.隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰...如果第二个参数是0,星期从星期天开始, 如果第二个参数是1,从星期一开始。

    38620

    Power Query 真经 - 第 8 章 - 纵向追加数据

    图 8-8 在一个步骤中添加多个追加项 或者,如果想要一次执行一个查询,并专注于创建一个易于使用的检查跟踪路径,那么可以在每次向数据源添加一个新的查询时采取如下操作。...当【追并】少量的表时,只需要使用上面描述的方法即可。 为每个数据源创建一个【暂存】(【仅限连接】)查询。 【引用】表。 追加其他的数据。...但是,如果用户想构建一个体系,其中 Excel 就像一个准数据库一样,用户按月创建一个新表,在工作簿中保存该月的交易,会发生什么情况?分析师真的想手动调整查询来每月【追加】一个新表吗?并非如此。...每个月,记账员都会勤奋地创建和命名一个新的工作表,并设置和命名该表作为他们月末工作的一部分。他们似乎忽略了一件事,就是把礼品券的发放日期或到期日期放在表中,如图 8-14 所示。...8.3.1 合并表 不幸的是,Excel 中没有按钮可以对当前工作簿中的可见对象创建查询,所以需要去从头开始创建这整个查询,如下所示。 创建一个新的查询【数据】【获取数据】【自其他源】【空白查询】。

    6.8K30

    PowerBI优化:更快、更小、更高效

    在视觉对象中,当您向下钻取到较低级别(例如月份级别)时,可以看到层次结构的效果: 图 8:向下钻取到月份级别的同一图表 如果您有一个小型模型并且没有那么多日期时间列,那么这是一个很棒的功能,但对于包含许多表的大型模型...Power BI Desktop 扫描 datetime 列,查找最小值和最大值,并创建一个包含整个范围的日期表。如果您有很多日期时间列,则这是一个无声杀手。理想情况下,您有一个自己维护的日期维度。...除非你需要非常精确的测量,否则两三位数通常就足够了。 datetime 列也是如此。如果您的日期还包括时间部分,则有许多唯一值。如果精度上升到秒级别,则一年中有 31,536,000 个唯一值。...如果只保留日期本身,则一年中只有 365 个(或可能 366 个)唯一值。将日期截断为日期级别将再次产生高压缩优势。如果您确实需要 time 部分,最好将其放在单独的列中。...但是,这将导致列具有非常高的基数(等于表中的行数),如果最终结果是文本字符串,则压缩将非常糟糕。更好的选择是在数据仓库或 Power Query 中创建代理键。

    18510

    PowerBI 引入时间智能

    比较平行时间段,比如与之前一年相同的月份。 当使用随时间进行的数据分析的时候,很可能要使用DAX函数。...实践中,需要创建一个表,开始日期是最早日期的1月1日而最大日期应该是数据源日期的上一年的12月31日。一旦你创建了这个表,就能连接数据模型中的含有时间字段的表,然后拓展时间相关的分析函数。...如果你打算展示MonthFull 或者MonthAbbr 列,那么将看到月份(month)出现在轴标签里面或者按字母排序的列里面。...因此如果Stock 或 Invoices表数据源扩展了新的数据并且在原有日期外的,那么这个时间维度表也会自动变化来包含这部分新增数据的部分。...这里的可以给大家一个小技巧,不需要每次都去创建这个日期表,可先创建一个空的模型,里面只有日期表,结束和开始日期是手填写的,然后加入所有其他列,接下来复制这个模板文件,以后每次使用都以这个模板文件为基础创建

    3.9K100

    初学者使用Pandas的特征工程

    在此,每个新的二进制列的值1表示该子类别在原始Outlet_Type列中的存在。 用于分箱的cut() 和qcut() 分箱是一种将连续变量的值组合到n个箱中的技术。...如果尝试将连续变量划分为五个箱,则每个箱中的观测数量将大致相等。...我们已经成功地使用了lambda函数apply创建了一个新的分类变量。 用于频率编码的value_counts() 和apply() 如果名义分类变量中包含许多类别,则不建议使用独热编码。...从第一行,我们可以理解,如果Item_Identifier为FD22,Item_Type为Snack Foods,则平均销售额将为3232.54。 这就是我们如何创建多个列的方式。...但是,如果你强调日期,则会发现你还可以计算一周中的某天,一年中的某个季度,一年中的某周,一年中的某天等等。我们可以通过这一日期时间变量创建的新变量的数量没有限制。

    4.9K31

    GPT4做数据分析时间序列预测之二相当棒2023.5.25

    我还修改了保存预测结果的文件名,使其包含当前迭代的编号,这样你可以为每次迭代生成一个新的文件。 情不自禁的用昂贵的GPT4赞美了一下他。。。。。。。。...因此,如果你发现用AdaBoostRegressor预测的未来数值都是一样的,可能是由于模型并不能很好地捕捉时间序列的动态变化,导致预测效果不佳。...以下是一个使用LSTM进行时间序列预测的简单示例。在这个示例中,我会创建一个函数来预处理数据,然后使用一个简单的LSTM网络进行预测。...Excel文件中 df_forecast.to_excel('预测销售数据_LSTM.xlsx', index=False) ``` 这个示例的主要部分是创建和训练一个LSTM模型。...训练周期数(epochs)和批量大小(batch_size)可能需要根据你的具体数据进行调整。 此外,我也创建了一个新的数据处理函数,用于生成LSTM模型需要的数据格式。

    30420

    Linux基础指令(2)

    ;如果文件是已存在的,将会清空文件的内容,再写入新的字符串; 小技巧:如果我们想要清空一个已有文件;直接>文件名即可,非常方便; > 文件:如果我们在文件中什么也不写;依旧可以使用echo >文件;这个时候...echo 就可以省略了;直接> 文件名就可以成功创建一个新的文件;所以这也是一个新的创建文件的方法; >> 指令;如果我们不想直接把文件全部清空,我们可以使用>> ;>>的功能是追加;所以叫做追加重定向指令...公历是现在国际通用的历法,又称格列历,通称阳历。 “ 阳历 ” 又名 “ 太阳历” ,系以地球绕行太阳一周为一年,为西方各国所通用,故又名 “ 西历 ” 。...命令格式 : cal [ 参数 ][ 月份 ][ 年份 ] 功能 : 用于查看日历等时间信息,如只有一个参数,则表示年份 (1-9999) ,如有两个参数,则表示月份和年份 常用选项 :...-3 显示系统前一个月,当前月,下一个月的月历 -j 显示在当年中的第几天(一年日期按天算,从 1 月 1 号算起,默认显示当前月在一年中的天数) -y 显示当前年份的日历

    3100

    千呼万唤始出来,MySQL 8.0索引三剑客之函数索引

    函数索引在JSON数据查询的应用 4. 思考:表达式优化查询的几种方式 我们假设以下场景:在一个允许名字变更的系统中,我们要查询出每年的4月份有修改过的人名,有几种方式可以实现?...实际上在MySQL 8.0中创建函数索引时,MySQL会自动在表上创建一个隐藏的虚拟列,然后在虚拟列上创建索引。这里注意:虚拟列是不实际占用空间的,但是函数索引是需要实际占据空间的。...每增加一个函数索引都同时会增加一列虚拟列并计入表列总数的限制; 函数索引不可以作为主键索引; 函数索引不能是空间或全文索引; 函数索引不能用作外键索引约束。...思考:表达式优化查询的几种方式 我们假设以下场景:在一个允许名字变更的系统中,我们要查询出每年的4月份有修改过的人名,有几种方式可以实现?...# 向表中添加一列,将时间列的表达式作为该列的默认值;然后再在该列添加一个普通索引。

    1.7K21

    【大招预热】—— DAX优化20招!!!

    您还必须使用VALUES(ColumnName)DAX函数来检索该单个值。 SELECTEDVALUE()在内部执行上述步骤。如果有一个值,它将自动检索单个值;如果有多个可用值,它将自动返回空白。...当前没有任何方法可以直接说明哪一行返回了错误。 FIND()和SEARCH()DAX函数提供了查询可以传递的额外参数。如果不存在 搜索字符串,则返回该参数。...不要在SUMMARIZE()中使用标量变量 传统上,SUMMARIZE()函数用于对列进行分组并返回结果聚合。 但是,SUMMARIZECOLUMNS()函数是较新的且已优化。改用它。...如果度量定义使用诸如AddColumns()之类的迭代函数,则Power BI将创建嵌套 的迭代,这会对报表性能产生负面影响。...它不考虑表的任何列中包含的空白。 公式的意图更加清晰和自我描述。 将SEARCH()与最后一个参数一起使用 如果未找到搜索字符串,则SEARCH()DAX函数接受最后一个参数作为查询必须 返回的值。

    4K31
    领券