Я пытаюсь уменьшить столбцы csv в процессе чтения, потому что выполнение этого после чтения файла занимает слишком много времени.Все идет нормально.Проблема возникает, конечно, если один столбец имеет значения NA.Есть ли возможность проигнорировать это или отфильтровать тех, кто находится в процессе чтения, может быть, с этим входом преобразователя pandas read csv?И что делает аргумент «многословный»?Документация кое-что говорит об Укажите количество значений NA, помещенных в нечисловые столбцы.
Мой подход к даункастингу до сих пор заключается в чтении первых двух строк и угадывании типа d.Я создаю отображение соответствия для аргумента dtype при чтении всего CSV.Конечно, значения NaN могут появиться в строках позже.Так вот, где могут встречаться смешанные типы:
import pandas as pd
df = pd.read_csv(filePath, delimiter=delimiter, nrows=2, low_memory=True, memory_map=True,engine='c')
if downcast == True:
mapdtypes = {'int64': 'int8', 'float64': 'float32'}
dtypes = list(df.dtypes.apply(str).replace(mapdtypes))
dtype = {key: value for (key, value) in enumerate(dtypes)}
df = pd.read_csv(filePath, delimiter=delimiter, memory_map=True,engine='c', low_memory=True, dtype=dtype)