📅  最后修改于: 2023-12-03 15:34:02.114000             🧑  作者: Mango
在Python中,当我们使用列表来存储数据时,可能会遇到一些空值NaN(Not a Number)的情况。这些NaN值可能会影响我们后续的数据处理,我们需要将它们进行填充。本文介绍如何使用Python来填充NaN值。
我们可以使用numpy库中的numpy.nan_to_num
函数来将NaN值替换为0。该函数还可以处理inf值(infinity,无穷大)和-inf值(negative infinity,负无穷大)。
import numpy as np
my_list = [1, 2, np.nan, 4, 5, np.inf, -np.inf]
filled_list = np.nan_to_num(my_list)
print(filled_list)
输出:
[ 1. 2. 0. 4. 5. 1. -1.]
如果我们使用的是pandas库来处理数据,可以使用fillna
函数来填充NaN值。该函数可以接受一个值来替换NaN值,也可以使用不同的插值方法进行填充,例如前向填充、后向填充、线性插值等。
import pandas as pd
my_list = [1, 2, None, 4, 5, None, None]
s = pd.Series(my_list)
filled_series = s.fillna(0)
print(filled_series)
输出:
0 1.0
1 2.0
2 0.0
3 4.0
4 5.0
5 0.0
6 0.0
dtype: float64
我们也可以使用列表推导式来填充NaN值。以下是一个简单的例子,将列表中的NaN值替换为0。
my_list = [1, 2, None, 4, 5, None, None]
filled_list = [i if i is not None else 0 for i in my_list]
print(filled_list)
输出:
[1, 2, 0, 4, 5, 0, 0]
以上就是填充NaN值的几种方法,在使用列表存储数据时,我们可以根据实际情况选择适合自己的方法。