.info Начального фрейма данных
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2851191 entries, 0 to 3168737
Data columns (total 6 columns):
READ_TIME object
SVC_PT_ID float64
CUSTOMER_ID object
SIGNAL_NAME object
SIGNAL_DESCRIPTION object
VALUE float64
dtypes: float64(2), object(4)
memory usage: 152.3+ MB
Затем я меняю типы данных "CUSTOMER_ID", "SIGNAL_NAME" и "SIGNAL_DESCRIPTION" на "category"
test = new_inkl_24.astype({"CUSTOMER_ID": "category", "SIGNAL_NAME":"category", "SIGNAL_DESCRIPTION":"category"})
Я проверяю, все ли сработало и размер файла уменьшился
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2851191 entries, 0 to 2851190
Data columns (total 7 columns):
Unnamed: 0 int64
READ_TIME object
SVC_PT_ID float64
CUSTOMER_ID category
SIGNAL_NAME category
SIGNAL_DESCRIPTION category
VALUE float64
dtypes: category(3), float64(2), int64(1), object(1)
memory usage: 95.2+ MB
Все работало отлично. Итак, теперь я сохраняю свой фрейм данных в .csv-f ie
test.to_csv('test.csv')
И вот проблема: размер файла больше не уменьшается. CSV точно такой же, как и исходный, со старыми типами данных для столбцов. Также, когда я снова импортирую файл в свой блокнот Jupyter, типы данных переключаются обратно на исходные.
# Load data
df = pd.read_csv("test.csv")
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2851191 entries, 0 to 2851190
Data columns (total 8 columns):
Unnamed: 0 int64
Unnamed: 0.1 int64
READ_TIME object
SVC_PT_ID float64
CUSTOMER_ID object
SIGNAL_NAME object
SIGNAL_DESCRIPTION object
VALUE float64
dtypes: float64(2), int64(2), object(4)
memory usage: 174.0+ MB
Что я делаю не так?