在pandas中,fillna()函数被广泛用于填充数据中存在的NaN或None值,以便能够更方便地进行数据分析和处理。下面是该函数的详细攻略和两条示例说明。
1. 基本语法
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
2. 参数说明
- value:用于替换NaN或None值的标量值、字典、数组或Series数据。
- method:用于填充NaN或None值的指定方法。可选参数包括' backfill','bfill','pad', 'ffill','nearest'。默认为None。
- axis:指定填充的轴。
0
表示列,1
表示行,默认为0
。 - inplace:是否对原数据进行操作。默认为
False
。 - limit:在填充缺失值时,限制连续的NaN或None值所填充的行数或列数。
- downcast:指定是否执行缩小类型的转换。默认为
None
。
3. 示例1:基于标量值填充缺失值
考虑一个包含NaN值的简单数据框df,如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3, np.nan, 5, 6],
'B': [2, np.nan, 3, 1, np.nan, 9],
'C': [1, 2, 3, 4, 5, np.nan]})
print(df)
输出如下:
A B C
0 1.0 2.0 1.0
1 2.0 NaN 2.0
2 3.0 3.0 3.0
3 NaN 1.0 4.0
4 5.0 NaN 5.0
5 6.0 9.0 NaN
我们使用标量值0
来填充数据框中所有的缺失值:
df.fillna(value=0)
输出如下:
A B C
0 1.0 2.0 1.0
1 2.0 0.0 2.0
2 3.0 3.0 3.0
3 0.0 1.0 4.0
4 5.0 0.0 5.0
5 6.0 9.0 0.0
4. 示例2:基于列均值填充NaN值
我们可以使用填充缺失值的平均方法来为数据框中所有列的NaN值填充平均值。如下所示:
df.fillna(df.mean())
输出如下:
A B C
0 1.0 2.0 1.0
1 2.0 3.333333 2.0
2 3.0 3.0 3.0
3 3.4 1.0 4.0
4 5.0 3.333333 5.0
5 6.0 9.0 3.0
我们也可以使用axis参数来在行上进行填充操作,下面的示例中,我们使用前向填充(pad)的方法填充数据框的所有NaN值。
df.fillna(method='pad', axis=0)
输出如下:
A B C
0 1.0 2.0 1.0
1 2.0 2.0 2.0
2 3.0 3.0 3.0
3 3.0 1.0 4.0
4 5.0 1.0 5.0
5 6.0 9.0 5.0
在这个示例中,我们沿着列轴开始向前搜索NaN值,然后用之前搜索到的最近的有效值来填充数据框中的缺失值。
这是关于pandas中fillna()函数填充NaN和None的完整攻略。使用这个函数,可以更方便地清理数据并进行分析处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas中fillna()函数填充NaN和None的实现 - Python技术站