根据特定条件和输入字典生成数据框-熊猫

丹麦文

我有一本字典,如下所示。

d1 = { 'start_date' : '2020-10-01T20:00:00.000Z',
       'end_date'  : '2020-10-05T20:00:00.000Z',
       'n_days'    : 6,
       'type'      : 'linear',
       "coef": [0.1,0.1,0.1,0.1,0.1,0.1]    
     }

从上面的字典作为函数的输入,我想在df以下生成作为输出。

预期产量:

Date                Day           function_type         function_value
2020-10-01          1             linear                (0.1*1)+0.1 = 0.2
2020-10-02          2             linear                (0.1*2)+0.1 = 0.3
2020-10-03          3             linear                (0.1*3)+0.1 = 0.4
2020-10-04          4             linear                (0.1*4)+0.1 = 0.5
2020-10-05          5             linear                (0.1*5)+0.1 = 0.6

注意:

type可以是直链,恒定的,多项式和指数的。

a0, a1, a2, a3, a4, a5 = d1['coef']

If constant:
funtion_value = a0

If exponential: 
funtion_value = e**(a0+a1T)

if polynomial:
funtion_value = a0+a1T+a2(T**2)+a3(T**3)+a4(T**4)+a5(T**5)

T: value of Day column
Shubham Sharma

定义一个函数funcValue,该函数根据in字典从给定的输入字典d和days列计算函数值Ttype

def funcValue(d, T):
    a0, a1, a2, a3, a4, a5 = d['coef']
    func = {
        'constant': a0,
        'linear': a0 + a1*T,
        'polynomial': a0 + a1*T + a2*(T**2)+ a3 * (T**3) + a4*(T**4) + a5*(T**5),
        'exponential':  np.power(np.e, a0 + a1*T)
    }

    return func[d['type']]

然后定义一个函数getDF该函数根据用户定义的词典中提供的信息生成所需的数据框d

def getDF(d):
    date = pd.date_range(d['start_date'], d['end_date'], freq='D').tz_localize(None).floor('D')
    days = (date - date[0]).days + 1
    return pd.DataFrame({'Date': date, 'Day': days, 'function_type': d['type'],
                         'function_value': funcValue(d, days)})

结果:

print(getDF(d1))

        Date  Day function_type  function_value
0 2020-10-01    1        linear             0.2
1 2020-10-02    2        linear             0.3
2 2020-10-03    3        linear             0.4
3 2020-10-04    4        linear             0.5
4 2020-10-05    5        linear             0.6

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫根据特定条件选择数据

根据特定条件生成带有填充的行-熊猫

熊猫-根据特定条件查找数据框中是否存在值

根据熊猫中的特定条件合并两个数据框

如何根据特定条件在数据框熊猫中的列上添加一列

如何根据特定条件在熊猫中删除数据框中的重复行

给定特定条件时,通过用户定义的函数在熊猫数据框的列中输入值

在特定条件下填充熊猫数据框列

特定条件下的熊猫数据框

满足特定条件的熊猫数据框正向填充

熊猫数据框比较具有特定条件的多行

如何根据列条目根据特定条件更改熊猫列数据?

根据条件从熊猫数据框中删除特定的行

当列值符合特定条件时,在熊猫数据框的行中提取2列数据

在熊猫数据框中以特定条件删除其余数据

根据字典更改熊猫数据框值

根据字典选择熊猫数据框的行

熊猫:根据特定条件创建新框架的最佳方法

按年份分组和其他列,并根据特定条件的熊猫计算平均值

如何在熊猫中具有特定条件的列名放入数据框单元格

熊猫数据框-查找符合特定条件的最长连续行

如何在熊猫数据框中设置重新采样的特定条件?

在特定条件下如何获取熊猫数据框的笛卡尔积

如何在特定条件下在熊猫数据框行中找到增量

在熊猫数据框中的特定条件下删除值

显示熊猫数据框中满足特定条件的所有单元格

熊猫数据框根据条件冻结

熊猫根据条件替换数据框值

根据条件合并行熊猫数据框