次のタブで区切られたデータをパンダに読み込もうとしています:
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/nXvW
ファイル内の\t
は、実際のバックスラッシュとそれに続くt
です。 ではありませんa 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
r
は、それが未加工の文字列であり、特殊文字が未加工の文字として解釈されることを示しています。そのため、1つの解決策では、文字列が未加工であり、バックスラッシュが2つしかないことを示しました。もう1つは、4つのバックスラッシュを残して、別のバックスラッシュで各バックスラッシュをエスケープする必要がありました。