我希望替换数据框中某一列中的负值。 我将这些值设置为NaN,然后应用fillna方法。
包含负数条目的数据框的一部分如下:
print df_sel.P_L_Bef_2.loc[67141:67143]
67141 96745
67142 -20625
67143 96745
Name: P_L_Bef_2, dtype: float64
我认为错误在于下面这部分内容。虽然我已经读了一些有关复制而非视图赋值的问题,但我认为使用.loc可能会解决这个问题。
df_sel.loc[df_sel.P_L_Bef_2 < 0] = np.nan
print df_sel.P_L_Bef_2.loc[67141:67143]
67141 96745
67142 NaN
67143 96745
Name: P_L_Bef_2, dtype: float64
目前为止,一切都很好。也许!但是...
df_sel['P_L_Bef_2'].fillna(method='ffill')
print df_sel.P_L_Bef_2.loc[67141:67143]
67141 96745
67142 NaN
67143 96745
Name: P_L_Bef_2, dtype: float64
那么,我是仍在赋值给一个副本,还是fillna方法正在按照我期望的方式运行?
谢谢您的帮助!