加速熊猫csv阅读和随后的垂头丧气

时间:2017-07-15 10:27:54

标签: python pandas

直截了当的问题 - 我正在做以下事情:

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

1 个答案:

答案 0 :(得分:3)

我建议您尝试这两个功能并再次看到性能:

  1. 阅读文件时转换

    # 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)})
    
  2. 读取文件后转换数据框

    df['MyColumnName'] = df['MyColumnName'].astype(int)