它仍然是 Nan 如果为正 -> 替换为 1 如果为负 -6ren">
gpt4 book ai didi

python - 用 "sign"数字填充 DataFrame

转载 作者:太空狗 更新时间:2023-10-29 21:13:00 25 4
gpt4 key购买 nike

我有一个充满 float (正数和负数)和一些 NaN 的 DataFrame。我想用它的符号替换每个 float :

  • 如果它是 NaN -> 它仍然是 Nan
  • 如果为正 -> 替换为 1
  • 如果为负 -> 替换为 -1
  • 如果为零 -> 保留为 0

对进行这种大规模替换有什么建议吗?

最佳答案

您可以使用 np.sign :

df
Out[100]:
A
0 -4.0
1 2.0
2 NaN
3 0.0

import numpy as np
np.sign(df["A"])

Out[101]:
0 -1.0
1 1.0
2 NaN
3 0.0
Name: A, dtype: float64

为了应用到所有列,可以直接传递dataframe:

df
Out[121]:
0 1 2 3
0 -2.932447 -1.686652 NaN -0.908441
1 1.254436 0.000000 0.072242 0.796944
2 2.626737 0.169639 -1.457195 1.169238
3 0.000000 -1.174251 0.660111 1.115518
4 -1.998091 -0.125095 0.000000 -0.506782

np.sign(df)
Out[122]:
0 1 2 3
0 -1.0 -1.0 NaN -1.0
1 1.0 0.0 1.0 1.0
2 1.0 1.0 -1.0 1.0
3 0.0 -1.0 1.0 1.0
4 -1.0 -1.0 0.0 -1.0

关于python - 用 "sign"数字填充 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37377478/

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