Когда я использую pandas для чтения файла CSV, я устанавливаю dtype
, используя словарь (dict_types
) для экономии памяти:
dict_types = {
"Id": "object",
"COD_OPE": "object",
"NUM_OPE": "float32",
"STR_ANA": "category",
"COD_EXO": "category",
"NUM_CPT": "object",
"MTT_DEV": "float32",
"SEN_MTT": "category",
}
columns = [
"Id",
"COD_OPE",
"NUM_OPE",
"STR_ANA",
"COD_EXO",
"NUM_CPT",
"MTT_DEV",
"SEN_MTT",
"DTE_OPE",
"DTE_CPT",
"DTE_VAL",
"DTE_TRT"
]
df_chunk = pd.read_csv(
"../SIDP_Operations/SAB_OPE_02_2020/SAB_OPE_02_2020.rpt",
sep="\t",
dtype=dict_types,
usecols=columns,
error_bad_lines=False,
chunksize=1000000,
parse_dates=["DTE_OPE", "DTE_CPT", "DTE_VAL", "DTE_TRT"],
infer_datetime_format=True,
)
Но, когда файл загружен, и я смотрю на df.info()
и df.dtypes
, он говорит мне, что тип STR_ANA
равен object
, в то время как я ожидаю, что это должно быть category
. И "COD_EXO" "SEN_MTT" действительно типа category
Почему?
может быть, это потому, что я использую чанк? на самом деле я сделал это, чтобы прочитать фрейм данных
chunk_list=[]
for chunk in df_chunk:
chunk_list.append(chunk)
df=pd.concat(chunk_list,ignore_index=True)