我正在尝试识别无法从CSV文件加载到Pandas DataFrame中的行(具有10_000行,行号9768出现问题)。 我尝试过的:
import pandas as pd
def get_error_lines(self):
"""Reading csv files."""
error_lines = set()
try: # Creating reader in chunks -- reduces memory load
reader = pd.read_csv(self.file, chunksize=5_000)
for chunk in reader:
print(chunk)
except Exception as detail:
error_line = str(detail).split()[-1]
error_lines.add(error_line)
return error_lines
这将返回:
STD_DRUG_DESC NDC_CODE
0 tramadol 50 mg tablet 00093005801
1 Norco 5 mg-325 mg tablet 52544091301
2 gabapentin 100 mg capsule 00378542601
3 Norco 5 mg-325 mg tablet 52544091301
4 gabapentin 100 mg capsule 00378542601
... ... ...
4995 FISH OIL 1000 MG PO CAPS
4996 INSULIN DETEMIR 100 UNIT/ML SC SOPN
4997 INSULIN DETEMIR 100 UNIT/ML SC SOPN
4998 AMLODIPINE BESYLATE 10 MG PO TABS
4999 GLUCOSE BLOOD VI STRP
[5000 rows x 2 columns]
9768
因此,第一个chunk
成功加载,但是第二个chunk
由于第9768行而失败。
第9767-9769行的内容是:
LACTATED RINGERS IV BOLUS, 00338011704
PROMETHAZINE 25 MG/ML INJECTION SOLUTION,
LACTATED RINGERS INTRAVENOUS SOLUTION, 00409795309
显示9768行缺少NDC_CODE
值。
但是,文件前面有多行也缺少NDC_CODE
的值,
那么您如何认为这行可能会有所不同,以及如何动态识别此类行号?
当前方法不会获取所有正确的行,也不会捕获所有错误的行号。