📅  最后修改于: 2023-12-03 15:33:24.360000             🧑  作者: Mango
在使用 Pandas 进行数据处理的过程中,会经常遇到超出数值范围的问题,导致产生 inf(无穷大)的值。这些值会在后续的计算和分析中造成问题,因此需要将其替换为 0 或其他合适的值。
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。
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() 函数。根据需要选择合适的方法即可。