如何使用python获取丢失的记录行号和列名?

Posted

技术标签:

【中文标题】如何使用python获取丢失的记录行号和列名?【英文标题】:How to get the missing record Row number and column names using python? 【发布时间】:2022-01-17 02:52:43 【问题描述】:

使用python和pandas,我想实现下面的输出。只要文件中存在NullNan 值,则需要打印行号和列名。

import pandas as pd

# List of Tuples
employees = [('Stuti', 'Null', 'Varanasi', 20000),
        ('Saumya', 'NAN', 'NAN', 35000),
        ('Saumya', 32, 'Delhi', 30000),
        ('Aaditya', 40, 'Dehradun', 24000),
        ('NAN', 45, 'Delhi', 70000)
        ]

# Create a DataFrame object from list
df = pd.DataFrame(employees,
            columns =['Name', 'Age',
            'City', 'Salary'])
print(df)

预期输出:

Row 0: column Age missing
Row 1: Column Age, column City missing
Row 4: Column Name missing

【问题讨论】:

【参考方案1】:

尝试isin 屏蔽缺失值,然后矩阵乘以@ 与列以连接它们:

s = df.isin(['Null','NAN'])

missing = s.loc[s.any(1)] @ ('column ' + df.columns + ', ')
for r, val in missing.str[:-2].items():
    print(f'Row r: val is missing')

输出:

Row 0: column Age is missing
Row 1: column Age, column City is missing
Row 4: column Name is missing

【讨论】:

从本地读取 csv 文件数据后不打印任何内容。你对此有什么建议吗?将熊猫导入为 pd df = pd.read_csv ('names.csv') print(df) 如果从csv读取数据,NullNAN可能会被np.nan替换。试试s = df.isna() | df.isin(['Null', 'NAN']) 太棒了。非常感谢。按预期工作..

以上是关于如何使用python获取丢失的记录行号和列名?的主要内容,如果未能解决你的问题,请参考以下文章

golang Golang:从行号和列号中获取列名

如何使用循环打印 sqlite3 中的表以及 python 中的列名以及如何准确获取列名?

如何查询多个表以获取表具有相同列名的记录

如何获取呼叫行号和文件名

如何连接数据框而不丢失列名中的括号?

如何获取 Python 中发生异常或错误的行号?