我正在通过使用变量nbr_rows_to_read
和nbr_rows_to_skip
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行的第一个块中读取。对于其他块,我得到定义为列名的值的第一行。如何将列名保留在其他块中?
答案 0 :(得分:1)
IIUC您可以在read_csv
的参数list
中的integer
上使用skiprows
个号码:
skiprows:list-like或integer,默认无
要在文件开头跳过(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