【发布时间】:2015-04-20 17:42:01
【问题描述】:
我想替换数据框列中的否定条目。 我将值设置为 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 方法是否正常工作?
感谢您的帮助!
【问题讨论】: