如何使用dataframe跟踪数据错误?

2024-09-26 22:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将数据从tsv文件导入熊猫数据帧

Input = pd.read_csv(input_file, delimiter='\t', header=0, encoding='utf-8')

我想对输入数据运行一些检查,例如检查预定义列之外的任何其他值,但我找不到使用dataframe执行此操作的选项。这有可能吗

Column 1  Column 2   Column 3
dog1      dog2       dog3
kitten1   kitten2    kitten3
horse1    horse2     horse3
mouse1    mouse2     mouse3   **mouse4**

我试图找到一个函数,它会将“mouse4”报告为原始数据中的错误。 我尝试过使用pd.shape,但这只适用于列标题。当试图显示数据帧数据中有错误时,没有输出任何内容


Tags: 文件csv数据readinputtsv错误column
1条回答
网友
1楼 · 发布于 2024-09-26 22:54:04

pd.read_csv产生一个ParserError你可以捕捉到。错误的原因和位置在第5行saw 4的错误消息预期的3个字段中报告header=0是默认行为,是冗余的

这种方法是在发生错误时读取标题并选择带有usecols参数的列

import pandas as pd

try:
    df = pd.read_csv('data.tsv', sep='\t')
except pd.errors.ParserError as e:
    print(e)
    header = pd.read_csv('data.tsv', sep='\t', nrows=0)
    df = pd.read_csv('data.tsv', sep='\t', usecols=header.columns)
df

输出

Error tokenizing data. C error: Expected 3 fields in line 5, saw 4

  Column 1 Column 2 Column 3
0     dog1     dog2     dog3
1  kitten1  kitten2  kitten3
2   horse1   horse2   horse3
3   mouse1   mouse2   mouse3

创建此解决方案中使用的数据文件

# %%writefile data.tsv
Column 1    Column 2    Column 3
dog1    dog2    dog3
kitten1 kitten2 kitten3
horse1  horse2  horse3
mouse1  mouse2  mouse3  mouse4

相关问题 更多 >

    热门问题