我有一个看起来像的数据集:
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
因此,对于需要计算的每个金额,需要使用两个相邻日期来计算估计金额。关于在熊猫中实现这一目标的最佳方法的任何想法?
答案 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