2017-02-16 5 views
2

.dfx 파일에 일부 데이터가 있고 팬더가있는 CSV로 읽으려고합니다. 그러나 판다가 읽지 못하는 특수 문자가 있습니다. 그들은 분리 자이기도합니다. I attached one line from it데이터 읽기 - csv

"DC4"파일을 인쇄 할 때 제거 중입니다. SI는 정확하게 공백으로 읽습니다. 나는 어떤 인코딩 (utf-8, latin1 등)을 시도했지만 성공하지는 못했다. I attached the printed first line as well. I marked the place where the characters should be.

내 코드는 간단하다 :

import pandas 

file_log = pandas.read_csv("file_log.DFX", header=None) 

print(file_log) 

나는 분명 누군가가 아이디어를 가지고 있기를 바랍니다. 미리 감사드립니다.

EDIT :

입력. LINK : drive.google.com/open?id=0BxMDhep-LHOIVGcybmsya2JVM28

의 예상 출력 : 두 분리기와 0x140x0f

88.4373 0 12.07.2014/17:05:22 38.0366 38.5179 1.3448 31.9839 
30.0070 0 12.07.2014/17:14:27 38.0084 38.5091 0.0056 0.0033 
+0

예제 입력 (이미지 제외)과 예상 출력을 제공 할 수 있습니까? –

+0

--------------------------------- – koger23

+0

필요한 것을 추가했는데 어쨌든 해결할 수 없으며 제거합니다. 만약 내가 단지 그것을 주석. – koger23

답변

5

(xxd)와 16 진수로 example.DFX 검사 기준이다 따라서.

것은 파이썬 엔진을 사용하여 여러 구분과 CSV를 읽기 :

import pandas 

sep1 = chr(0x14) # the one shows dc4 
sep2 = chr(0x0f) # the one shows si 
file_log = pandas.read_csv('example.DFX', header=None, sep='{}|{}'.format(sep1, sep2), engine='python') 

print file_log 

그리고 당신은 얻을 :

  0 1     2  3  4  5  6 7 
0 88.4373 0 12.07.2014/17:05:22 38.0366 38.5179 1.3448 31.9839 NaN 
1 30.0070 0 12.07.2014/17:14:27 38.0084 38.5091 0.0056 0.0033 NaN 

마지막에 빈 열이 보인다. 그러나 당신이 그것을 처리 할 수 ​​있다고 확신합니다.

+0

잘 작동합니다. 고마워요! – koger23

0

인코딩은 여기 ASCII로 보입니다. DC4는 "장치 제어 4"를 나타내고 SI는 "시프트 인"을 나타냅니다. 이들은 ASCII 파일의 제어 문자이며 인쇄 할 수 없습니다. 따라서 "print (file_log)"를 실행할 때 볼 수는 없지만 터미널을보고 (\ n은 줄 바꾸기를 수행하는 것처럼) 터미널에 따라 뭔가를 할 수도 있습니다.

인터프리터에서 file_log를 입력하여 해당 변수의 표현을 가져 와서 해당 특수 문자가 포함되어 있는지 확인하십시오. 이 경우 DC4가 16 진수 14를 의미하는 '\ x14'로 표시됩니다. 그런 다음 바꾸기와 같은 문자열 조작을 사용하여 프로그램에서 이러한 문자열을 처리 할 수 ​​있습니다.