Pandas中缺失值/NaN值/空值的处理


isna()

释义

筛选为NaN的布尔值,可接受单个标量或者数组

举例

筛选stu_name为NaN的所有行:

df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np.nan], 'stu_age': [16, 16, 15, np.nan, 21]})
print(df)
df1 = df[df['stu_name'].isna()]
print(df1)




fillna()

释义

对NaN值进行填充,官方文档

常用参数

  • value:用来填充的值,只能为标量/dict/Series/DataFrame
  • method:填充的方式
    • backfill/bfill:用后一个非NaN值填充本NaN值
    • pad/ffill:用前一个非NaN值来填充本Nan值
    • None:用value参数指定的值来填充(默认方式)
  • inplace:是否修改原对象

举例

  1. 把所有的NaN填充为横杠-
df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np.nan], 'stu_age': [16, 16, 15, np.nan, 21]})
print(df)
df1 = df.fillna('-')
print(df1)
  1. stu_name为NaN的填充为UNKNOWNstu_age为NaN的填充为-1
df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np.nan], 'stu_age': [16, 16, 15, np.nan, 21]})
print(df)
df2 = df.fillna({'stu_name': 'UNKNOWN', 'stu_age': -1})
print(df2)


上一篇:pandas笔记


下一篇:ios端时间显示异常问题