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

标签 python pandas

假设 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 - 对于什么函数 f df.apply(f) 将所有负值转换为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381225/

相关文章:

python - 根据其他数据框 Python 估算 NaN 值

python - 每秒更新 GTK+ MenuItem 倒计时,并定期调用函数

python - 从雅虎财经检索大量数据

python - IronPython 在运行时将函数代码作为字符串获取

python - 如何在 Cython 中定义 C++ 模板函数类型?

python - 仅插入(或外推) Pandas 数据框中的小间隙

python - 防止 Pandas read_csv 将 NA 解释为 NaN,但为空值保留 NaN

python - 创建一个附加有连续数字的字符串列表

python - Panda 按时间和列计数值分组

python - 将 click.command 的结果传递给另一个函数