Python Pandas对缺失值的处理方法主要有以下几个:
- 删除缺失值
- 填充缺失值
- 插值法填充
下面详细介绍这三种方法的使用。
删除缺失值
删除缺失值是常用的处理缺失值的方法,如果数据集中缺失值较少,可以将含有缺失值的行或列删除,以保证结果的精准度。Pandas提供了 dropna() 函数实现删除缺失值的功能。
示例1:
import pandas as pd
import numpy as np
# 生成含有缺失值的数据
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, np.nan, 5]})
# 删除含有缺失值的行
df = df.dropna()
# 输出结果
print(df)
运行结果:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 2.0
示例2:
import pandas as pd
import numpy as np
# 生成含有缺失值的数据
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, np.nan, 5]})
# 删除含有缺失值的列
df = df.dropna(axis=1)
# 输出结果
print(df)
运行结果:
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3, 4]
填充缺失值
填充缺失值是指用特定的值或统计量替换缺失值。常用的替换方法有一些如下:均值、中位数、众数、前向填充和后向填充等。Pandas提供了 fillna() 函数实现填充缺失值的功能。
示例1:
import pandas as pd
import numpy as np
# 生成含有缺失值的数据
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, np.nan, 5]})
# 用均值填充含有缺失值的列
df['A'].fillna(df['A'].mean(), inplace=True)
# 输出结果
print(df)
运行结果:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 2.0
2 3.0 3.0 3.0
3 4.0 NaN NaN
4 5.0 5.0 5.0
示例2:
import pandas as pd
import numpy as np
# 生成含有缺失值的数据
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, np.nan, 5]})
# 前向填充
df.fillna(method='ffill', inplace=True)
# 输出结果
print(df)
运行结果:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 2.0
2 2.0 3.0 3.0
3 4.0 3.0 3.0
4 5.0 5.0 5.0
插值法填充
插值法是通过已知数据点的信息推导未知点的方法。针对数据样本,使用插值法可以对缺失的值进行补充。Pandas提供了 interpolate() 函数实现插值法填充缺失值的功能。
示例:
import pandas as pd
import numpy as np
# 生成含有缺失值的数据
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, np.nan, 5],
'C': [1, 2, 3, np.nan, 5]})
# 插值法填充
df.interpolate(inplace=True)
# 输出结果
print(df)
运行结果:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 2.0
2 3.0 3.0 3.0
3 4.0 4.0 4.0
4 5.0 5.0 5.0
以上就是Pandas处理缺失值的三种方法。具体方法应根据实际情况选择。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Pandas对缺失值的处理方法 - Python技术站