Pandas中行的线性估计

时间:2018-01-16 19:45:27

标签: python-3.x pandas

我有一个看起来像的数据集:

import pandas as pd
df= pd.DataFrame({'Date':['2016-12-31','2017-03-31','2017-06-30','2017-02-15'],'Business':['FRC','FICC','FRC','FICC']\
              ,'Amount':[10,100,20,200]})
df

鉴于这些日期之间的任何日期,我想获得与这些日期对应的线性值。所以,例如,如果我有一个额外的日期,我要找的金额将是15:

df= pd.DataFrame({'Date':['2016-12-31','2017-03-31','2017-06-30','2017-02-15','2017-03-31'],'Business':['FRC','FICC','FRC','FICC','FRC']\
              ,'Amount':[10,100,20,200,15]})
df

因此,对于需要计算的每个金额,需要使用两个相邻日期来计算估计金额。关于在熊猫中实现这一目标的最佳方法的任何想法?

1 个答案:

答案 0 :(得分:2)

您可以使用JSON.parse(JSON.stringify(array))set_index()reindex()执行此操作。

interpolate()

编辑:

要容纳多索引,请像以前一样设置索引,使用所需的日期和业务重新索引,然后对索引进行排序。然后你可以将业务分组并进行线性插值。

df = df.set_index('Date').reindex(['2016-12-31','2017-02-15','2017-03-31','2017-05-15','2017-06-30'])

df['Amount'].interpolate(inplace=True)

df

Out[3]:

            Amount
Date    
2016-12-31  100.0
2017-02-15  150.0
2017-03-31  200.0
2017-05-15  250.0
2017-06-30  300.0