2015-12-17 67 views
2

我定义的行数阅读和行数读一个大的数据文件使用变量nbr_rows_to_readnbr_rows_to_skip保持在阅读大熊猫据帧与NROWS列名和skiprows

data_df = pd.read_csv(data_file, delimiter="|", nrows=nbr_rows_to_read, 
         skiprows=nbr_rows_to_skip, 
         dtype={'col1':object,'col2':object,'col3':object, 'col4': object}) 

问题跳过是只有在跳过0行的第一个块中读取列名称。对于其他块,我将第一行的值定义为列名。我如何将列名保存在其他块中?

+1

@jezrael,而不是使用chunksize我通过定义要读取和跳过的行数来限制块大小。 – MedAli

回答

1

IIUC您可以在参数skiprows使用数字的list而不是在integerread_csv

skiprows:列表状或整数,默认无

行号跳过(0索引)或行数跳过(INT)在文件的开始

演示:

import pandas as pd 
import io 

#test data 
temp=u"""id|col1|col2|col3 
1|13|15|0 
1|13|15|1 
1|13|15|2 
1|12|15|3 
1|13|15|4 
1|12|15|5 
1|12|15|6 
2|18|15|7""" 


#skip first data rows, keep header 
nbr_rows_to_skip = range(1, 2) 
nbr_rows_to_read = 6 

data_df = pd.read_csv(io.StringIO(temp), delimiter="|", nrows=nbr_rows_to_read, skiprows=nbr_rows_to_skip, dtype={'col1':object,'col2':object,'col3':object, 'col4': object}) 
print data_df 
# id col1 col2 col3 
#0 1 13 15 1 
#1 1 13 15 2 
#2 1 12 15 3 
#3 1 13 15 4 
#4 1 12 15 5 
#5 1 12 15 6