📜  python list fill nan - Python (1)

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

Python List Fill NaN

在Python中,当我们使用列表来存储数据时,可能会遇到一些空值NaN(Not a Number)的情况。这些NaN值可能会影响我们后续的数据处理,我们需要将它们进行填充。本文介绍如何使用Python来填充NaN值。

1. 使用numpy库

我们可以使用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.]
2. 使用pandas库

如果我们使用的是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
3. 使用列表推导式

我们也可以使用列表推导式来填充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值的几种方法,在使用列表存储数据时,我们可以根据实际情况选择适合自己的方法。