Pandas 向量化函数寻找从起始单元格增长 n% 的时间

问题描述 投票:0回答:0

我有一个带有时间序列的 pandas

DataFrame
(在本例中是二手车模型的价格),我正在寻找一个向量化函数来将每个单元格映射到价格从该单元格增长
n
百分比所需的时间(如果从未达到
n
% 以上,则返回
nan

理论上应该可以以向量化的方式执行,因为每行的输出与其之前的内容无关

这是数据和预期输出的示例

import numpy as np
import pandas as pd
import datetime


df = pd.DataFrame(
    [
        1490.47,
        1492.98,
        1494.69,
        1497.43,
        1499.02,
        1503.29,
        1501.60,
        1502.80,
        1502.30,
        1509.38,
        1512.01,
        1508.98,
        1512.63,
    ],
    columns=['price'],
)

df.index.names = ['time']

n=1/100

因此,在这种情况下,我想运行

n=1/100
,因此计算每个单元格价格上涨 1% 所需的时间。因此,对于第一个单元格,1% 的增长将位于
1490.47*1.01 = 1505.3747
,第一个大于此值的单元格是
1509.38
,它是第一个单元格之后的 9 个单元格,因此该单元格的输出将为
9
,依此类推剩下的...

预期输出将是:

df.some_functions(n=1/100)

print(df)

        price
time         
0     9
1     8
2     8
3     nan
4     nan
5     nan
6     nan
7     nan
8     nan
9     nan
10    nan
11    nan
12    nan

后 10 是

nan
,因为价格不会增长到超过剩余 DataFrame 中单元格的 1%。

一如既往地非常感谢

python python-3.x pandas vectorization
© www.soinside.com 2019 - 2024. All rights reserved.