我想,以取代np.nan所有的负面是在列号 'b'
这是示例框架:
pd.DataFrame({'a': [1, 2] , 'b': [-3, 4], 'c': [5, -6]})
Run Code Online (Sandbox Code Playgroud)
有关就地和非方法解决方案,请参阅此问题。
如果assign算作 df 上的方法,则可以重新计算该列b并将其分配给以df替换旧列:
df = pd.DataFrame({'a': [1, 2] , 'b': [-3, 4], 'c': [5, -6]})
df.assign(b = df.b.where(df.b.ge(0)))
# a b c
#0 1 NaN 5
#1 2 4.0 -6
Run Code Online (Sandbox Code Playgroud)
为了获得更好的链接行为,您可以使用lambda以下函数assign:
df.assign(b = lambda x: x.b.where(x.b.ge(0)))
Run Code Online (Sandbox Code Playgroud)