pandas fillna用法
在数据分析中,经常会遇到缺失值的情况。缺失值对于数据分析和建模过程来说是一个普遍的问题,需要在处理数据之前做一些预处理工作。pandas中的fillna()
函数可以帮助我们填充缺失值,让数据更加完整,从而更好地进行分析和建模。
fillna函数的基本用法
fillna()
函数的基本语法为:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
参数说明:
value
:要填充缺失值的具体数值,可以是标量、字典、Series或DataFramemethod
:填充缺失值的方法,如ffill(用前一个值填充)、bfill(用后一个值填充)axis
:填充的方向,0为行,1为列inplace
:是否在原数据上修改limit
:每个索引填充的次数downcast
:用于指定要尽量转换的数据类型
下面通过示例来演示fillna()
函数的基本用法:
import pandas as pd
import numpy as np
data = {
'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, 4, 5]
}
df = pd.DataFrame(data)
print("原始数据:")
print(df)
# 使用指定值填充缺失值
df_filled = df.fillna(value=0)
print("\n指定值填充缺失值后的数据:")
print(df_filled)
# 使用前一个值填充缺失值
df_ffilled = df.fillna(method='ffill')
print("\n用前一个值填充缺失值后的数据:")
print(df_ffilled)
# 使用后一个值填充缺失值
df_bfilled = df.fillna(method='bfill')
print("\n用后一个值填充缺失值后的数据:")
print(df_bfilled)
输出如下:
原始数据:
A B C
0 1.0 NaN 1
1 2.0 2.0 2
2 NaN 3.0 3
3 4.0 NaN 4
4 5.0 5.0 5
指定值填充缺失值后的数据:
A B C
0 1.0 0.0 1
1 2.0 2.0 2
2 0.0 3.0 3
3 4.0 0.0 4
4 5.0 5.0 5
用前一个值填充缺失值后的数据:
A B C
0 1.0 NaN 1
1 2.0 2.0 2
2 2.0 3.0 3
3 4.0 3.0 4
4 5.0 5.0 5
用后一个值填充缺失值后的数据:
A B C
0 1.0 2.0 1
1 2.0 2.0 2
2 4.0 3.0 3
3 4.0 5.0 4
4 5.0 5.0 5
高级用法
除了基本用法外,fillna()
函数还支持一些高级用法,如在指定列上进行缺失值填充、根据条件进行填充等。下面通过示例来演示这些高级用法:
# 在指定列上填充缺失值
df_column_filled = df.fillna(value={'A': 0, 'B': 1})
print("\n在指定列上填充缺失值后的数据:")
print(df_column_filled)
# 根据条件填充缺失值
df_condition_filled = df.fillna(value={'A': df['A'].mean(), 'B': df['B'].median()})
print("\n根据条件填充缺失值后的数据:")
print(df_condition_filled)
输出如下:
在指定列上填充缺失值后的数据:
A B C
0 1.0 1.0 1
1 2.0 2.0 2
2 0.0 3.0 3
3 4.0 1.0 4
4 5.0 5.0 5
根据条件填充缺失值后的数据:
A B C
0 1.0 3.0 1
1 2.0 2.0 2
2 3.0 3.0 3
3 4.0 3.0 4
4 5.0 5.0 5
总结
通过本文的介绍,我们了解了pandas中fillna()
函数的基本用法和高级用法。这个函数在处理数据分析中的缺失值时非常实用,能够帮助我们更好地预处理数据,提高数据的完整性和可靠性。