下面是Pandas学习之df.fillna的具体使用攻略:
1. 前言
在数据处理和分析过程中,经常会遇到缺失值的情况,如何处理这些缺失值就要用到Pandas库的fillna()方法。fill()方法可以将数据框(DataFrame)中的缺失值(NA)替换为指定的值或方法计算的值,从而使得缺失值不影响后续数据操作和计算。本文将详细介绍Pandas库的fillna()方法的使用。
2. 语法
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
3. 参数说明
- value: 可以是一个常量值或一个字典,用于在缺失值处填充要替换的值。如果是字典,则可以指定每个列需要填充的特定值。
-
method: 可以是'backfill', 'bfill', 'pad', 'ffill'和None。使用的方法如下:
-
‘pad’ / ‘ffill’:用缺失值之前的有效值进行填充。
- ‘backfill’ / ‘bfill’:用缺失值之后的有效值进行填充。
-
None: 不使用任何填充方法,只是使用指定的值进行替换。
-
axis: 默认值为0,指定要填充的轴。如果是1,则每行填充;如果是0,则每列填充。
- inplace: 可选,默认为False,表示是否在原始数据上进行修改。如果是True,原始数据的缺失值部分会被修改;否则返回一个新的数据,不影响原始数据。
- limit: 可选,默认为None。表示在指定轴向前向后填充的极限数量。
- downcast: 可选,默认为None。使用的数据类型。
4. 示例说明
下面将分别介绍fillna()方法的几种常见用法。
4.1 填充缺失值
下面的示例将使用fillna()方法,将数据框中的所有缺失值(NA)用0来填充。
import pandas as pd
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'age': [41, 52, 36, 24, 73],
'sex': ['M', 'F', 'F', 'M', 'F'],
'preTestScore': [4, 24, 31, 2, None],
'postTestScore': [25, 94, 57, 62, None]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'sex', 'preTestScore', 'postTestScore'])
print(df)
print('\n')
df.fillna(0, inplace=True)
print(df)
输出结果如下:
first_name last_name age sex preTestScore postTestScore
0 Jason Miller 41 M 4.0 25.0
1 Molly Jacobson 52 F 24.0 94.0
2 Tina Ali 36 F 31.0 57.0
3 Jake Milner 24 M 2.0 62.0
4 Amy Cooze 73 F NaN NaN
first_name last_name age sex preTestScore postTestScore
0 Jason Miller 41 M 4.0 25.0
1 Molly Jacobson 52 F 24.0 94.0
2 Tina Ali 36 F 31.0 57.0
3 Jake Milner 24 M 2.0 62.0
4 Amy Cooze 73 F 0.0 0.0
从上面的输出结果可以看出,原始数据框中的第5行有两个缺失值,使用fillna()方法后被填充为了0。
4.2 填充缺失值(向前填充)
下面的示例将使用fillna()方法,将数据框中所有的缺失值(NA)用之前的有效值进行填充。
import pandas as pd
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'age': [41, None, 36, None, 73],
'sex': ['M', 'F', 'F', 'M', 'F'],
'preTestScore': [4, None, 31, None, 55],
'postTestScore': [None, 94, None, 62, None]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'sex', 'preTestScore', 'postTestScore'])
print(df)
print('\n')
df.fillna(method='ffill', inplace=True)
print(df)
输出结果如下:
first_name last_name age sex preTestScore postTestScore
0 Jason Miller 41.0 M 4.0 NaN
1 Molly Jacobson NaN F NaN 94.0
2 Tina Ali 36.0 F 31.0 NaN
3 Jake Milner NaN M NaN 62.0
4 Amy Cooze 73.0 F 55.0 NaN
first_name last_name age sex preTestScore postTestScore
0 Jason Miller 41.0 M 4.0 NaN
1 Molly Jacobson 41.0 F 4.0 94.0
2 Tina Ali 36.0 F 31.0 94.0
3 Jake Milner 36.0 M 31.0 62.0
4 Amy Cooze 73.0 F 55.0 62.0
从上面的输出结果可以看出,fillna()方法中使用的method参数是ffill,在没有有效值的情况下,不会进行填充。在这个例子中,相应列的第一行缺失值的位置没有有效值,因此保持了原始值。而其余的缺失值将会使用ffill法填充。
5. 总结
本篇攻略通过使用具体的示例介绍了Pandas库中_dataframe.fillna()方法的常用用法,并对各个参数进行了详细的解释。掌握了fillna()方法的使用,可以更加便捷地进行数据填充和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas学习之df.fillna的具体使用 - Python技术站