gpt4 book ai didi

python - df.apply(f) 将所有负值转换为零的函数 f 是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:25 24 4
gpt4 key购买 nike

假设 df 是一个完全由 float 组成的 Pandas 数据帧。


我知道

df[df < 0] = 0

用零替换 df 中的所有负值,但我问的是不同的东西。我想知道我必须在表达式中使用什么函数 f

df.apply(f)

...使得生成的数据帧在 df 具有负数的位置具有零。


FWIW,以下失败并出现错误:

df.apply(lambda x: max(x, 0))

...下面产生了错误的结果:

df.apply(lambda x: numpy.max(x, 0))

更一般地说,如何将非向量化、返回标量的函数应用于数据帧 A每个单元格,从而生成与 A 具有相同形状的新数据框?

最佳答案

这需要 applymap ,不适用:

df = pd.DataFrame(np.random.randn(4, 2))

df
Out:
0 1
0 1.157994 -0.729533
1 -1.062847 1.119744
2 -0.424534 -0.058468
3 0.465355 -0.838637

df.applymap(lambda x: max(x, 0))

Out:
0 1
0 1.157994 0.000000
1 0.000000 1.119744
2 0.000000 0.000000
3 0.465355 0.000000

关于python - df.apply(f) 将所有负值转换为零的函数 f 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381225/

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