下記のようなカラムの数が一定でないtsvを読み込みたかった。
105497 101731 90359 107575 105320 76175 96971 95604 109100 72563 105730 109194 96971 95604
read_csvで読み込んでみる。
pd.read_csv( 'foo.tsv', sep='\t', header=False ) #=> CParserError: Error tokenizing data. C error: Expected 3 fields in line 4, saw 8
怒られた。途中で3列だと早とちりして4行目で落ちている。
列の数をnamesで指定してあげれば、通るらしい。仮に最大で10列あるとする。
# これをカラム名にする col_names = [ 'c{0:02d}'.format(i) for i in range(10) ] #=> ['c00', 'c01', 'c02', 'c03', 'c04', 'c05', 'c06', 'c07', 'c08', 'c09'] # 読んでみる pd.read_csv( 'foo.tsv', sep='\t', names=col_names ) #=> c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 #=> 0 105497 NaN NaN NaN NaN NaN NaN NaN NaN NaN #=> 1 101731 90359 107575 NaN NaN NaN NaN NaN NaN NaN #=> 2 105320 76175 96971 95604 109100 72563 105730 109194 NaN NaN #=> 3 96971 95604 NaN NaN NaN NaN NaN NaN NaN NaN
読めた。良いのではないでしょうか。