python - 将转换器与 read_csv 一起使用时获取错误行

标签 python csv pandas

我有一个包含日期国家/地区(只能在预定义列表中取值)等信息的 csv 文件,我目前正在使用 converters 参数来进行一些完整性检查,如下所示:

import pandas as pd

def datesCheck(x):
    #do some checks and return the formated date
    pass

def countriesCheck(x):
    if x in countriesList:
        return x
    else:
    raise ValueError, x + ' is not a recognised country'

df = pd.read_csv('myCsvFile.csv', converters={'Dates': datesCheck, 'Countries': countriesCheck})

我想知道是否有办法获取引发(或第一行)ValueError 的行数(如果有的话),这样我就可以打开 csv 文件并快速更改它。

感谢您的帮助。周末愉快!

最佳答案

引入一个计数器变量并对行进行计数并提高导致错误的行:

import pandas as pd

current_row = 0

def datesCheck(x):
    current_row += 1
    #do some checks and return the formated date
    # if date ok do nothing
    # else raise ValueError, 'Error Row = ' + str(current_row )
    pass

def countriesCheck(x):
    if x in countriesList:
        return x
    else:
    raise ValueError, x + ' is not a recognised country in row = ' + str(current_row)

df = pd.read_csv('myCsvFile.csv', converters={'Dates': datesCheck, 'Countries': countriesCheck})

关于python - 将转换器与 read_csv 一起使用时获取错误行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079754/

相关文章:

python - 如何在单元测试中使用 assert_frame_equal

python - 将整数列表转换为整数python

r - 加载多个包含逗号或句点作为小数点的 `csv` 文件

python - 类型错误 : object of type 'numpy.int64' has no len()

python - 如何检查使用哪个编译器构建 Python

python - 大型不规则网格到规则网格的二维插值

javascript - CSV 数据导入到可嵌套 json 数据

python - 无法将数据帧转换为 CSV

python - 对于数据框,按变量分组,排序,然后消除不连续的行

python - pandas dataframe 可以在新窗口中呈现吗?