python pandas DataFrame 查找 NaN 所在的位置

import pandas as pd
import numpy as np
df1 = pd.DataFrame(
    {
        '日期': ['2021-7-2', '2021-8-2', '2021-9-2', '2021-10-2'],
        'A': [1, 2, 3, 4],
        'B': [5, np.nan, 7, 8],
        'C': [9, 10, 11, np.nan],
        'D': [13, 14, 15, 16],
        'E': ['年龄', '性别', '职业', '姓名'],
    },
    index=[0, 1, 2, 3])
print(df1)
          日期  A    B     C   D   E
0   2021-7-2  1  5.0   9.0  13  年龄
1   2021-8-2  2  NaN  10.0  14  性别
2   2021-9-2  3  7.0  11.0  15  职业
3  2021-10-2  4  8.0   NaN  16  姓名
df2 = df1[df1.isnull().values==True] # 查找所有带NaN值的数据
print(df2)
          日期  A    B     C   D   E
1   2021-8-2  2  NaN  10.0  14  性别
3  2021-10-2  4  8.0   NaN  16  姓名
# 查找nan所在的行和列的位置
position1 =df1.isnull().stack()[lambda x: x].index.tolist()  
print(position1)
[(1, 'B'), (3, 'C')]
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐