直截了当的问题 - 我正在做以下事情:
train_set = pd.read_csv('./input/train_1.csv').fillna(0)
for col in train_set.columns[1:]:
train_set[col] = pd.to_numeric(train_set[col],downcast='integer')
数据帧的第一列是一个字符串 - 其余的是整数。 Read_csv给出了浮点数,我不需要它。下采样导致使用的RAM减少近50%,但显着减慢了过程。我可以一步完成整个事情吗?或者有人知道如何多线程吗? THX
答案 0 :(得分:3)
我建议您尝试这两个功能并再次看到性能:
阅读文件时转换
# or uint8/int16/int64 depends on your data
pd.read_csv('input.txt', sep=' ', dtype=np.int32)
# or you can use converters with lambda function
pd.read_csv('test.csv', sep=' ', converters={'1':lambda x : int(x)})
读取文件后转换数据框
df['MyColumnName'] = df['MyColumnName'].astype(int)