【发布时间】:2022-11-24 23:55:23
【问题描述】:
我想基于两个现有数据框创建一个具有相同形状的新数据框。我有一个数据框代表标志,另一个数据框代表我想要替换的值。
flag 数据框只有1、-1 和 NaN,并且总是在 1 之后我会有一个 -1。所以基本上它是一种“改变状态”的数据框。我想做的是:在1和-1之间的区间,我需要在第二个数据帧PR中填写相同区间的平均值。
flag = pd.DataFrame({'col1': [np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan],
'col2': [np.nan,1,-1,1,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,-1],
'col3': [np.nan,np.nan,np.nan,1,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,-1],
'col4': [np.nan,np.nan,np.nan,np.nan,np.nan,1,np.nan,-1,np.nan,np.nan,np.nan]
})
PR = pd.DataFrame({'col1': [81,81.3,80.7,81.5,81,80.4,80.3,81,79.5,80.7],
'col2': [80.9,81.6,81.2,81.7,80.9,79.7,79.3,79.1,79,77.5],
'col3': [81.1,81.3,81,81.6,80.8,79.5,79.2,78.8,78.8,77.4],
'col4': [80.1,80.6,79.9,80.4,80.4,79.3,79,78.8,78.4,77]
})
这必须给我:
result = pd.DataFrame({'col1': [np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan,np.nan],
'col2': [np.nan,81.4,81.4,79.6,79.6,79.6,79.6,79.6,79.6,79.6,79.6],
'col3': [np.nan,np.nan,np.nan,79.44,79.44,79.44,79.44,79.44,79.44,79.44,79.44],
'col4': [np.nan,np.nan,np.nan,np.nan,np.nan,79.03,79.03,79.03,np.nan,np.nan,np.nan]
})
任何帮助深表感谢!
【问题讨论】: