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

cld4siwp  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(272)

我试图在下面的标签中读取分隔成pandas的数据:
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未被识别为选项卡。
如果我用'keyboard tab'替换\t,文件会被正确解析。我也试过用\t和/t替换'\t,但没有成功。
先谢谢你的帮助。
奥马尔
PS:截图http://imgur.com/a/nXvW3

uidvcgyl

uidvcgyl1#

文件中的\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表示它是一个原始字符串,特殊字符应该被解释为原始字符。这就是为什么在一个解决方案中,我表示字符串是原始的,只有两个反斜杠。在另一个解决方案中,我必须用另一个反斜杠转义每个反斜杠,留下四个反斜杠。

相关问题