首页 > 编程问答 >python中时间序列数据的梯度计算

python中时间序列数据的梯度计算

时间:2024-07-21 03:13:14浏览次数:9  
标签:python

我正在尝试编写一个函数,它可以从最适合下面的线返回梯度 dataframe

在浏览了谷歌的几个资源之后,我仍然不确定这是如何完成的。

我明白最佳拟合线的计算公式为: y = mx + b 将因变量 (y) 设置为 foos ,将自变量 (x) 设置为 DateTime

Dataframe

DateTime                    foos
2019-06-02 11:10:00.000000  0.01693508247952
2019-06-02 11:09:00.000000  0.5880636280067069
2019-06-02 11:08:00.000000  0.039372713999924
2019-06-02 11:07:00.000000  0.0695437258183455
2019-06-02 11:05:00.000000  1.5659431108801645
2019-06-02 11:04:00.000000  0.557622107242239
2019-06-02 11:03:00.000000  1.636076943844067
2019-06-02 11:02:00.000000  0.95229579554872
2019-06-02 11:01:00.000000  4.140446615946458
2019-06-02 11:00:00.000000  1.9773540525390418
2019-06-02 10:59:00.000000  0.4339180765629633
2019-06-02 10:58:00.000000  0.9779139666335716
...

如何/使用什么才能返回时间序列数据的梯度值?


import pandas as pd
from scipy.stats import linregress

# 创建你的示例数据
data = {'DateTime': pd.to_datetime([
    '2019-06-02 11:10:00.000000',
    '2019-06-02 11:09:00.000000',
    '2019-06-02 11:08:00.000000',
    '2019-06-02 11:07:00.000000',
    '2019-06-02 11:05:00.000000',
    '2019-06-02 11:04:00.000000',
    '2019-06-02 11:03:00.000000',
    '2019-06-02 11:02:00.000000',
    '2019-06-02 11:01:00.000000',
    '2019-06-02 11:00:00.000000',
    '2019-06-02 10:59:00.000000',
    '2019-06-02 10:58:00.000000'
]),
        'foos': [
            0.01693508247952,
            0.5880636280067069,
            0.039372713999924,
            0.0695437258183455,
            1.5659431108801645,
            0.557622107242239,
            1.636076943844067,
            0.95229579554872,
            4.140446615946458,
            1.9773540525390418,
            0.4339180765629633,
            0.9779139666335716
        ]
       }
df = pd.DataFrame(data)

# 将“DateTime”列转换为数值类型,以进行线性回归
df['DateTime'] = pd.to_numeric(df['DateTime'])

# 使用 scipy.stats.linregress 计算斜率(梯度)
slope, intercept, r_value, p_value, std_err = linregress(df['DateTime'], df['foos'])

print(f"梯度(斜率)为:{slope}")

这段代码首先将你的“DateTime”列转换为数值格式,这是线性回归所必需的。然后,它使用 scipy.stats.linregress 函数计算最佳拟合线的斜率(代表梯度)和截距,以及其他统计数据,如 R 平方值、p 值和标准误差。

在此代码中, 梯度 由线性回归的 斜率 表示。较大的正斜率表示随着时间的推移, foos 值快速增加,而较小的正斜率或负斜率表示 foos 值增加缓慢或随时间减少。

标签:python
From: 56414595

相关文章

  • 调试用 C 编写的 Python 扩展
    我非常熟悉编写C代码,并且很擅长编写Python代码。我正在尝试学习如何用C编写可以从OSX10.15.7上的Python-3.9.X调用的模块。我已经得到了几个“helloworld”类型的示例,但是对于复杂的示例,我正在努力弄清楚如何调试我编写的C扩展。MWE:src/add.c//......
  • 具有块大小选项的 Python pandas read_sas 因索引不匹配而失败并出现值错误
    我有一个非常大的SAS文件,无法容纳在我的服务器内存中。我只需要转换为镶木地板格式的文件。为此,我使用pandas中chunksize方法的read_sas选项分块读取它。它主要是在工作/做它的工作。除此之外,一段时间后它会失败并出现以下错误。此特定SAS文件有794......
  • 使用 requests 包 python 时打开文件太多
    我正在使用Pythonrequests包向API发出大量请求。然而,在某些时候,我的程序由于“打开的文件太多”而崩溃。当我明确关闭我的会话时,我真的不知道这是怎么回事。我使用以下代码:importrequestsimportmultiprocessingimportnumpyasnps=requests.session()s.keep......
  • Python 是一种选择性解释语言吗?为什么下面的代码不起作用?
    由于程序是从上到下运行的,为什么下面的代码不执行块中的第一行就直接抛出错误?if5>2:print("TwoislessthanFive!")print("Fiveisgreaterthantwo!")错误:文件“/Users/____/Desktop/Pythonpractise/practise.py”,第3行print("五比二大!")Indentati......
  • 裁剪时间变量 Python Matplotlib Xarray
    我不确定这是否是一个愚蠢的问题,但我想按时间变量剪辑.nc文件。我在xarray中打开了数据集,但以下ds.sel行(之前已运行)仅返回错误。ds=xr.open_dataset('/Users/mia/Desktop/RMP/data/tracking/mcs_tracks_2015_11.nc')selected_days=ds.sel(time=slice('2015-11-22',......
  • 用于匹配两个数据列表中的项目的高效数据结构 - python
    我有两个列表,其中一个列表填充ID,另一个列表填充进程名称。多个进程名称可以共享一个ID。我希望能够创建一个可以使用特定ID的数据结构,然后返回与该ID关联的进程列表。我还希望能够使用特定的进程名称并返回与其连接的ID列表。我知道我可以为此创建一个字典,但是I......
  • 有人可以解决我的代码中的问题吗?而且我无法在我的电脑上安装 nsetools。如何在 python
    从nsetools导入Nseimportpandasaspdnse=Nse()all_stock_codes=nse.get_stock_codes()companies_with_low_pe=[]对于all_stock_codes中的代码:如果代码=='符号':继续尝试:stock_quote=nse.get_quote(代码)pe_ratio=stock_quote.get('priceT......
  • 将 python 脚本的 stdin 重定向到 fifo 会导致 RuntimeError: input():lost sys.stdin
    我有这个python脚本,它的作用是充当服务器,它从重定向到fifo的stdin读取命令:test.py:whileTrue:try:line=input()exceptEOFError:breakprint(f'Received:{line}')在bash中运行命令:mkfifotestfifotest.py<testfifo......
  • Python/Flask mysql 游标:为什么它不起作用?
    fromflaskimportFlaskfromflask_mysqldbimportMySQLapp=Flask(__name__)app.config['MYSQL_HOST']='localhost'app.config['MYSQL_USER']='root'app.config['MYSQL_PASSWORD']='password'a......
  • Python pandas to_csv 导致 OSError: [Errno 22] 参数无效
    我的代码如下:importpandasaspdimportnumpyasnpdf=pd.read_csv("path/to/my/infile.csv")df=df.sort_values(['distance','time'])df.to_csv("path/to/my/outfile.csv")此代码成功从infile.csv(一个3GBcsv文件)读取数据,对其进行排......