Я пытаюсь прочитать CSV-файл, который содержит несколько значений в каждой ячейке, и я хочу закодировать их в один отформатированный байт int, который будет храниться в ячейке панд (например, (1, 1) -> 771) , Для этого я бы хотел использовать параметр преобразователей функции read_csv
. Проблема заключается в том, что я не знаю имен столбцов перед этим, и значение, которое должно быть передано конвертерам, должно быть диктовкой с именами столбцов в качестве ключей. На самом деле я хочу преобразовать все столбцы с одинаковой функцией преобразования. Для этого было бы лучше написать:
read_csv(fhand, converter=my_endocing_function)
чем:
read_csv(fhand, converters={'col1':my_endocing_function,
'col2':my_endocing_function,
'col3':my_endocing_function,})
Возможно ли что-то подобное? Прямо сейчас, чтобы решить проблему, я делаю:
dataframe = read_csv(fhand)
enc_func = numpy.vectorize(encoder.encode_genotype)
dataframe = dataframe.apply(enc_func, axis=1)
Но я думаю, что этот подход может быть менее эффективным.
Кстати, у меня есть подобные сомнения с форматерами, используемыми методом to_string.