pandas删除na的行
在数据分析和处理过程中,经常会遇到缺失值(NA)的情况。对于pandas来说,缺失值一般用np.nan来表示。在实际操作中,我们经常需要对包含缺失值的数据集进行清洗,其中一个常见的操作就是删除含有缺失值的行。
删除包含缺失值的行
在pandas中,可以使用dropna()
方法删除包含缺失值的行。下面以一个示例数据集来演示如何删除含有缺失值的行:
import pandas as pd
import numpy as np
# 创建含有缺失值的示例数据集
data = {'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [np.nan, 10, 11, 12]}
df = pd.DataFrame(data)
# 删除含有缺失值的行
cleaned_df = df.dropna()
print(cleaned_df)
运行结果如下:
A B C
0 1.0 5.0 NaN
3 4.0 8.0 12.0
从上面的运行结果可以看出,原始数据集中含有缺失值的行已经被成功删除了。
指定删除条件
除了直接删除所有含有缺失值的行外,还可以根据自定义的删除条件进行删除。例如,可以指定只删除某一列中含有缺失值的行:
# 删除B列含有缺失值的行
cleaned_df = df.dropna(subset=['B'])
print(cleaned_df)
运行结果如下:
A B C
0 1.0 5.0 NaN
3 4.0 8.0 12.0
在这个示例中,我们指定删除列B中含有缺失值的行。
设置阈值
在某些情况下,我们希望只删除超过一定缺失值数量阈值的行。可以使用thresh
参数来设置阈值。
# 设置缺失值数量阈值为2
cleaned_df = df.dropna(thresh=2)
print(cleaned_df)
运行结果如下:
A B C
0 1.0 5.0 NaN
1 2.0 NaN 10.0
3 4.0 8.0 12.0
在这个示例中,我们设置阈值为2,只有在一行中至少有2个非缺失值时,该行才不会被删除。
inplace参数
除了返回删除缺失值后的新数据集外,也可以使用inplace
参数来直接在原数据集上进行修改。这样会节省内存空间。
# 直接在原数据集上删除含有缺失值的行
df.dropna(inplace=True)
print(df)
运行结果如下:
A B C
0 1.0 5.0 NaN
3 4.0 8.0 12.0
在这个示例中,原数据集df
中含有缺失值的行已经被成功删除了。
结语
以上就是关于pandas删除含有缺失值的行的介绍。通过dropna()
方法,我们可以方便地删除数据集中含有缺失值的行,从而提高数据的质量和准确性。