2017-02-22 60 views
1

我有一個ASCII數據集,它具有ctrl字段分隔符和\ n作爲行分隔符。我正在閱讀Python,並想知道如何處理它。我特別希望能夠將這些信息讀入熊貓數據框。閱讀帶有字段分隔符的ASCII作爲ctrl A和行分隔爲Python的 n

我目前有;

import pandas as pd 
input = pd.read_csv('000000_0', sep='^A') 

的錯誤,那麼我得到的是

_main__:1: ParserWarning: Falling back to the 'python' engine because the 'c' engine does 
not support regex separators; you can avoid this warning by specifying engine='python'. 

然後我不知道我怎麼指定行分隔符太。

任何想法?

在此先感謝!

+0

你有使用通常的方法有問題? – Goyo

回答

3

使用pd.read_csv與參數sep=chr(1)

from io import StringIO 
import pandas as pd 

mycsv = """a{0}b{0}c 
d{0}e{0}f""".format(chr(1)) 


pd.read_csv(StringIO(mycsv), sep=chr(1)) 

    a b c 
0 d e f 
0

Python的csv庫相當擅長閱讀分隔的文件;-)

以從上面鏈接的文檔的例子:

import csv 
with open('eggs.csv', 'rb') as csvfile: 
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    for row in spamreader: 
     print ', '.join(row) 

這將在文件中的行自動重複(因此處理換行符),並且可以如圖所示設置分隔符。

+0

問題在於,OP如何正確地在他們的文件中寫入特定的分隔符(''\ x01'',通常以ctrl + a的形式輸入),這是您的答案沒有解決的問題。要使用'csv'這個例子對這個問題有用,請用這個分隔符來顯示一個例子。 – Nathan

0

如果CTRL+A你指的是ASCII碼爲SOH(稅號的開始),嘗試首先在新行分割你的數據,以獲得行,並拆分這些對"\x01",這是SOH的十六進制代碼。但是沒有任何代碼,數據,預期結果或錯誤消息,這主要是猜測。

相關問題