我想基于两个现有 Dataframe 创建一个具有相同形状的新 Dataframe 。我有一个表示标志的 Dataframe ,另一个包含我想替换的值。flag
Dataframe 只有1、-1和NaN,在1之后总是会有-1。所以基本上它是一种“状态变化”的 Dataframe 。我想做的是:在区间1和-1之间,我需要在第二个 Dataframe 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,np.nan,1,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]
})
这就得给予我:
col1 col2 col3 col4
0 NaN NaN NaN NaN
1 NaN 81.40 NaN NaN
2 NaN 81.40 NaN NaN
3 NaN NaN 79.44 NaN
4 NaN 79.25 79.44 NaN
5 NaN 79.25 79.44 79.03
6 NaN 79.25 79.44 79.03
7 NaN 79.25 79.44 79.03
8 NaN 79.25 79.44 NaN
9 NaN 79.25 79.44 NaN
任何帮助都是非常感谢的!
1条答案
按热度按时间6pp0gazn1#
我将使用一个自定义函数:
输出量: