gpt4 book ai didi

python - 用 NaN 替换 dataframe 中的负值,用 fillna 方法替换 NaN

转载 作者:行者123 更新时间:2023-12-04 01:12:19 34 4
gpt4 key购买 nike

我想替换数据框列中的负条目。我将值设置为 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

下一部分是我怀疑错误的地方。虽然我已经阅读了一些关于分配给副本而不是 View 的问题,但我认为使用 .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 方法的工作方式与我预期的不同?

感谢您的帮助!

最佳答案

您看不出有什么不同,因为默认情况下它不会就地执行此操作,因此您需要分配结果:

df_sel['P_L_Bef_2'] = df_sel['P_L_Bef_2'].fillna(method='ffill')

或设置 inplace = Truefillna 的文档显示它需要什么参数和默认参数值。所以设置 inplace = True 也应该有效:

df_sel['P_L_Bef_2'].fillna(method='ffill', inplace=True)

关于python - 用 NaN 替换 dataframe 中的负值,用 fillna 方法替换 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29744232/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com