我有一个包含日期、国家/地区(只能在预定义列表中取值)等信息的 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/