Я создаю программу, которая обрабатывает более 20 миллионов строк и более 50 столбцов данных.Я пытаюсь проверить, являются ли числа в одном из столбцов четными или нечетными.
Если четный, вставьте 'E' в другой столбец;если нечетно, вставьте 'O' в столбец.
DF_FILE_IN = pd.read_csv('3MB_2.txt',chunksize=1000,sep='\t',dtype=str,engine='c',header=0,encoding='latin-1')
out_fields = ['HSNBR','OEFLAG']
for DF_FILE in DF_FILE_IN:
df_out1 = pd.DataFrame(dtype='str',columns=out_fields)
df_out1['HSNBR'] = DF_FILE['ANumber'].map(lambda x: f'{x:0>6}')
df_out1.loc[pd.to_numeric(df_out1['HSNBR']).map(lambda x: (x % 2 == 0) & (x != 0)), 'OEFLAG'] = 'E'
df_out1.loc[pd.to_numeric(df_out1['HSNBR']).map(lambda x: (x % 2 != 0) & (x != 0)), 'OEFLAG'] = 'O'
Но некоторые данные содержат буквы, символы, пробелы и т. д.
Когда я запускаю его, из этой строки появляется ошибкакода: df_out1.loc[pd.to_numeric(df_out1['HSNBR']).map(lambda x: (x % 2 == 0) & (x != 0)), 'OEFLAG'] = 'E'
и говорит (пример):
ValueError: Unable to parse string "111 1/2g" at position 10
Я использую чанкинг для извлечения данных (например, 1 миллион строк ввремя).Я хочу поместить данные, которые вызывают ошибки, в отдельный файл.Но когда я использую try except
, он не обрабатывает столбец данных в этом чанке.
Как получить данные и ошибки в файл, позволяя программе продолжать обработку столбца?