根据另一个系列插入一个系列缺失值
Interpolate a series missing values based on another series
我有这个数据:
{
"col1" : [1,np.nan,np.nan,np.nan,np.nan,8],
"col2" : [2,np.nan,np.nan,np.nan,np.nan,2]
"col_macro" : [3,4,7,7,13,18]
}
两个数据列都是时间序列。 col1
和col2
列是微观数据,col_macro
是宏观数据
我想使用 col_macro
用插值替换缺失值。这意味着它们之间的变化率和冲击应该相似。
还有什么方法可以设置限制吗?例如,如果两端的值相似,我希望插值严格增加、减少或不变?
创建数据框
df=pd.DataFrame({
"col1" : [1,np.nan,np.nan,np.nan,np.nan,8],
"col2" : [2,np.nan,np.nan,np.nan,np.nan,2],
"col_macro" : [3,4,7,7,13,18]
})
找到col3中的连续差异,使用combined_first传递到右列。因为是连续差,所以做扩和
df['col1'] = df['col1'].combine_first(df['col_macro'].diff()).expanding(1).sum()
df['col2'] = df['col1'].combine_first(df['col_macro'].diff()).expanding(1).sum()
我有这个数据:
{
"col1" : [1,np.nan,np.nan,np.nan,np.nan,8],
"col2" : [2,np.nan,np.nan,np.nan,np.nan,2]
"col_macro" : [3,4,7,7,13,18]
}
两个数据列都是时间序列。 col1
和col2
列是微观数据,col_macro
是宏观数据
我想使用 col_macro
用插值替换缺失值。这意味着它们之间的变化率和冲击应该相似。
还有什么方法可以设置限制吗?例如,如果两端的值相似,我希望插值严格增加、减少或不变?
创建数据框
df=pd.DataFrame({
"col1" : [1,np.nan,np.nan,np.nan,np.nan,8],
"col2" : [2,np.nan,np.nan,np.nan,np.nan,2],
"col_macro" : [3,4,7,7,13,18]
})
找到col3中的连续差异,使用combined_first传递到右列。因为是连续差,所以做扩和
df['col1'] = df['col1'].combine_first(df['col_macro'].diff()).expanding(1).sum()
df['col2'] = df['col1'].combine_first(df['col_macro'].diff()).expanding(1).sum()