python pandas read_csv无法识别制表符分隔文件中的\ t

时间:2017-08-01 16:43:56

标签: python pandas tab-delimited

我正在尝试将以下标签中的数据分成大熊猫:
test.txt:

col_a\tcol_b\tcol_c\tcol_d
4\t3\t2\t1  
4\t3\t2\t1 

我按如下方式导入test.txt:

pd.read_csv('test.txt',sep='\t')

结果数据框有1列。 \ t不会被识别为选项卡。

如果我用'键盘标签'替换\ t,则文件会被正确解析。我也尝试用\ t和/ t替换'\ t',但没有任何运气。

提前感谢您的帮助。
奥马尔

PS:屏幕截图http://imgur.com/a/nXvW3

1 个答案:

答案 0 :(得分:9)

您文件中的\t是一个实际的反斜杠,后跟t。它是一个tab。您必须在sep参数上使用一些转义字符。

pd.read_csv('test.txt', sep=r'\\t', engine='python')

   col_a  col_b  col_c  col_d
0      4      3      2      1
1      4      3      2      1

或者

pd.read_csv('test.txt', sep='\\\\t', engine='python')

   col_a  col_b  col_c  col_d
0      4      3      2      1
1      4      3      2      1

response to comment

r表示它是原始字符串,特殊字符应解释为原始字符。这就是为什么在一个解决方案中我指出字符串是原始的并且只有两个反斜杠。另一方面,我不得不用另一个反斜杠来逃避每个反斜杠,留下四个反斜杠。