Python pandas.DataFrame 找出有空值的行 |
您所在的位置:网站首页 › 筛选有空值的行 › Python pandas.DataFrame 找出有空值的行 |
要找出pandas.DataFrame中有空值的行,可以使用以下步骤: 使用.isnull()函数来检查数据中的空值。例如,我们有一个名为df的DataFrame: import pandas as pd df = pd.DataFrame({'A': [1, 2, None], 'B': [5, None, 7], 'C': [9, 10, 11]}) print(df)以下是输出: A B C 0 1.0 5.0 9 1 2.0 NaN 10 2 NaN 7.0 11我们使用.isnull()函数来检查每个元素是否为空: null_mask = df.isnull() print(null_mask)以下是输出: A B C 0 False False False 1 False True False 2 True False False这个输出生成了一个新的DataFrame,其中True表示如果列中的值为空时则为该表中的空值。现在我们已经找到所有为空值的元素了。 使用.any()函数查找包含空值的行。使用了axis参数,设为1,这将提供对行的迭代: row_has_null = null_mask.any(axis=1) print(row_has_null)以下是输出: 0 False 1 True 2 True dtype: bool这将生成一个布尔Series,其中显然包含任何空值的行返回True。 现在我们可以使用此布尔Series进行索引,以检索包含空值的行: rows_with_null = df[row_has_null] print(rows_with_null)以下是输出: A B C 1 2.0 NaN 10 2 NaN 7.0 11这将生成一个包含所有包含空值的行的DataFrame。 示例: import pandas as pd import numpy as np data = {"name": ["Alice", "Bob", "Charlie", "David", "Eli"], "age": [25, 33, 40, None, 29], "gender": ["Female", None, "Male", "Male", "Male"], "height": [1.62, np.nan, 1.75, 1.80, 1.79]} df = pd.DataFrame(data) print(df)输出: name age gender height 0 Alice 25.0 Female 1.62 1 Bob 33.0 None NaN 2 Charlie 40.0 Male 1.75 3 David NaN Male 1.80 4 Eli 29.0 Male 1.79我们使用上述三个步骤可以找到包含空值的行: # 第一步:使用 `.isnull()` 函数检查数据中的空值 null_mask = df.isnull() print(null_mask) # 第二步:使用 `.any()` 函数查找包含空值的行 row_has_null = null_mask.any(axis=1) print(row_has_null) # 第三步:使用此布尔Series进行索引,以检索包含空值的行 rows_with_null = df[row_has_null] print(rows_with_null)输出: name age gender height 0 False False False False 1 False False True True 2 False False False False 3 False True False False 4 False False False False 0 False 1 True 2 False 3 True 4 False dtype: bool name age gender height 1 Bob 33.0 None NaN 3 David NaN Male 1.80另一个示例: import pandas as pd import numpy as np data = {"name": ["Alice", "Bob", "Charlie", "David", "Eli"], "age": [25, 33, 40, None, 29], "gender": ["Female", None, "Male", "Male", "Male"], "height": [1.62, np.nan, 1.75, 1.80, 1.79], "nationality": ["USA","China",None,"UK","India"]} df = pd.DataFrame(data) print(df)输出: name age gender height nationality 0 Alice 25.0 Female 1.62 USA 1 Bob 33.0 None NaN China 2 Charlie 40.0 Male 1.75 None 3 David NaN Male 1.80 UK 4 Eli 29.0 Male 1.79 India现在假设我们想找到包含空值的行,但只想检查age和gender列中的空值,我们可以这样做: # 第一步:使用 `.isnull()` 函数检查数据中的空值 null_mask = df[['age', 'gender']].isnull() print(null_mask) # 第二步:使用 `.any()` 函数查找包含空值的行 row_has_null = null_mask.any(axis=1) print(row_has_null) # 第三步:使用此布尔Series进行索引,以检索包含空值的行 rows_with_null = df[row_has_null] print(rows_with_null)这里我们指定使用age和gender列,然后执行相同的步骤,并使用此新创建的DataFrame执行第二步。输出为: age gender 0 False False 1 False True 2 False False 3 True False 4 False False 0 False 1 True 2 False 3 True 4 False dtype: bool name age gender height nationality 1 Bob 33.0 None NaN China 3 David NaN Male 1.8 UK本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python pandas.DataFrame 找出有空值的行 - Python技术站 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |