当我们处理数据时,经常会遇到数据缺失的情况,而pandas是一个强大的数据处理工具,提供了多种处理缺失值的方法。
处理缺失值的方法
pandas提供了三种处理缺失值的方法,分别是:
1. 删除缺失值
使用dropna()方法可以删除包含缺失值的行或列。例如:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
'B': [5, np.nan, 7, 8],
'C': [9, 10, 11, np.nan]})
df.dropna() # 删除包含缺失值的行
以上代码会删除包含缺失值的行,输出结果如下:
A B C
0 1.0 5.0 9.0
3 4.0 8.0 NaN
我们也可以通过设置axis参数来删除包含缺失值的列:
df.dropna(axis='columns') # 删除包含缺失值的列
以上代码会删除包含缺失值的列,输出结果如下:
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]
2. 填充缺失值
使用fillna()方法可以填充缺失值。例如:
df.fillna(value=0) # 使用0填充缺失值
以上代码将所有缺失值填充为0,输出结果如下:
A B C
0 1.0 5.0 9.0
1 2.0 0.0 10.0
2 0.0 7.0 11.0
3 4.0 8.0 0.0
我们也可以通过method参数填充缺失值,例如使用ffill前向填充:
df.fillna(method='ffill') # 使用前向填充
以上代码将缺失值填充为该列中的前一个值,输出结果如下:
A B C
0 1.0 5.0 9.0
1 2.0 5.0 10.0
2 2.0 7.0 11.0
3 4.0 8.0 11.0
3. 判断是否存在缺失值
使用isna()方法可以判断是否存在缺失值:
df.isna() # 判断是否存在缺失值
以上代码会将缺失值标记为True,输出结果如下:
A B C
0 False False False
1 False True False
2 True False False
3 False False True
示例说明
示例1
现在我们有一个包含缺失值的数据集,我们希望删除掉所有包含缺失值的行:
import pandas as pd
import numpy as np
df = pd.read_csv('data.csv')
df.dropna()
以上代码会读取数据集并删除包含缺失值的行。
示例2
现在我们有一个包含缺失值的数据集,我们希望将缺失值填充为该列的均值:
import pandas as pd
import numpy as np
df = pd.read_csv('data.csv')
df.fillna(df.mean())
以上代码会读取数据集并将缺失值填充为该列的均值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas如何处理缺失值 - Python技术站