📜  pandas 将 inf 替换为 0 - Python (1)

📅  最后修改于: 2023-12-03 15:33:24.360000             🧑  作者: Mango

Pandas 将 inf 替换为 0 - Python

在使用 Pandas 进行数据处理的过程中,会经常遇到超出数值范围的问题,导致产生 inf(无穷大)的值。这些值会在后续的计算和分析中造成问题,因此需要将其替换为 0 或其他合适的值。

方法一:使用 replace() 函数

Pandas 提供了一个 replace() 函数,可以将 DataFrame 或 Series 中的指定值替换为其他值。

import pandas as pd
import numpy as np

# 创建一个含有 inf 值的 Series
s = pd.Series([1, 2, np.inf, 4])

# 将 inf 替换为 0
s.replace(np.inf, 0)

输出结果为:

0    1.0
1    2.0
2    0.0
3    4.0
dtype: float64

可以看到,原本为 inf 的值被替换为了 0。

方法二:使用 fillna() 函数

Pandas 还提供了一个 fillna() 函数,可以将缺失值或特定的值替换为指定值。

import pandas as pd
import numpy as np

# 创建一个含有 inf 值的 DataFrame
df = pd.DataFrame({'A': [1, 2, np.inf, 4], 'B': [5, np.inf, 7, 8]})

# 将 inf 替换为 0
df.fillna(0)

输出结果为:

     A    B
0  1.0  5.0
1  2.0  0.0
2  0.0  7.0
3  4.0  8.0

可以看到,原本为 inf 的值被替换为了 0。

总结

以上介绍了两种将 inf 替换为 0 的方法,分别是使用 replace() 函数和 fillna() 函数。根据需要选择合适的方法即可。