使用Python映射,过滤和缩减过程

时间:2018-07-02 17:57:57

标签: python pandas dataframe

我正在努力理解Python中的map,filter和reduce的概念。我正在使用Python v3.6在Spyder IDE中工作。我有一个数据框:

Cap    OC_y       GMWB         PE        Acc
0.01    0.0065  0.560840708 0.646683673 0.515243902
0.0105  0.0068  0.586725664 0.676530612 0.53902439
0.011   0.0071  0.612610619 0.706377551 0.562804878
0.0115  0.0073  0.629867257 0.72627551  0.578658537
0.012   0.0076  0.655752212 0.756122449 0.602439024
0.0125  0.0079  0.681637168 0.785969388 0.626219512
0.013   0.0082  0.707522124 0.815816327 0.65
0.0135  0.0085  0.73340708  0.845663265 0.673780488
0.014   0.0087  0.750663717 0.865561224 0.689634146
0.0145  0.009   0.776548673 0.895408163 0.713414634
0.015   0.0093  0.802433628 0.925255102 0.737195122

我要选择以.005为增量的上限记录。请看下面:

Cap    OC_y        GMWB          PE         Acc
0.01    0.0065  0.560840708 0.646683673 0.515243902
0.015   0.0093  0.802433628 0.925255102 0.737195122

在这种情况下,地图功能不能正常工作吗?

map(lambda Cap: Cap + 0.05, data)

任何其他选择都很好。理想情况下,我需要它以某种方式工作,以便我可以基于某个值逐步选择记录。

1 个答案:

答案 0 :(得分:1)

假设这些数字是0.005的倍数,则可以除以然后使用<WebView source= {{ uri:"file:///data/user/0/com.ema_poc/files/PlaxVideoDemo/Clip 4_1/story_html5.html"} } style={styles.webview} javaScriptEnabled={true} domStorageEnabled={true} startInLoadingState={false} scalesPageToFit={true} /> 进行选择。

np.isclose

如果不是这种情况,那么我建议减去差值直到出现差值,然后重复以上操作:

v = df.Cap / 0.005
out = df[np.isclose(v, v.astype(int))]

v = (df.Cap - (df.Cap % 0.005).iat[0]) / 0.005
out = df[np.isclose(v, v.astype(int))]