📅  最后修改于: 2023-12-03 14:57:16.969000             🧑  作者: Mango
在处理数据时,经常需要处理空值。但是,对于一个包含大量数据的数据集来说,手动寻找空值并且记录它们的位置是一项费时费力的任务。因此,自动化地获取空值的索引是程序员必须掌握的技巧之一。
下面介绍几种常用的获取空值索引的方法。
如果数据集以numpy数组的形式存在,可以使用numpy库中的 isnan()
函数获取包含空值的布尔型数组 nan_vals
,然后使用 where()
函数获取空值的索引。
import numpy as np
arr = np.array([1, 2, np.nan, 4, np.nan, 6])
nan_vals = np.isnan(arr)
nan_idxs = np.where(nan_vals)
print(nan_idxs)
输出结果:(array([2, 4]),)
如果是以pandas的 DataFrame
对象形式存在,可以使用 isnull()
函数获取包含空值的布尔型 DataFrame
,然后取得所有空值行的索引。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, np.nan, 4, np.nan, 6], 'B': [7, np.nan, 9, np.nan, 11, np.nan]})
nan_df = df.isnull()
nan_idxs = nan_df.index[nan_df.any(axis=1)]
print(nan_idxs)
输出结果:Int64Index([2, 4, 5], dtype='int64')
如果没有使用numpy或pandas库,可以使用列表解析式获取空值索引,虽然速度比前两种方法慢一些。
lst = [1, 2, None, 4, None, 6]
nan_idxs = [i for i, x in enumerate(lst) if x is None]
print(nan_idxs)
输出结果:[2, 4]
以上是几种常用的获取空值的索引方法,程序员可以根据具体情况选择适合自己的方法。