2017-02-26 1 views
-1

기본적으로 출력 형식이 .raw 인 기계 테스트의 데이터가 있으며 파이썬에서 액세스하려고합니다.데이터 처리를위한 .raw 파일 읽기 및 분할

구분 기호 ";"를 사용하여 파일을 분할해야합니다. 그래서 그것은 13 개의 열을 포함합니다. 이 방법을 사용하면 내 정보를 "Extension mm"및 "Load N"값으로 41 행의 배열로 원하는 정보를 색인 및 철수하여 플롯을 만들 수 있습니다.

나는 .raw 파일로 일한 적이 없으며 무엇을 해야할지 잘 모릅니다.

파일은 여기에서 다운로드 할 수 있습니다 https://drive.google.com/file/d/0B0GJeyFBNd4FNEp0elhIWGpWWWM/view?usp=sharing

희망 누군가가 나를 도울 수 있습니다!

답변

1

파일은 기본적으로 .tsv와 같이 보이며 건너 뛸 40 줄입니다. 이거해볼 수 있니?

import csv 

#export your file.raw to tsv 
with open('TST0002.raw') as infile, open('new.tsv', 'w') as outfile: 
    lines = infile.readlines()[40:] 
    for line in lines: 
     outfile.write(line) 

또는 당신은 당신의 두 개의 열이 직접 일부 데이터 분석을하려는 경우 :

import pandas as pd 

df = pd.read_csv("TST0002.raw", sep="\t", skiprows=40, usecols=['Extension mm', 'Load N']) 

print(df) 

출력 :

Extension mm  Load N 
0  -118.284 0.1365034 
1  -117.779 -0.08668576 
2  -117.274 -0.1142517 
3  -116.773 -0.1092401 
4  -116.271 -0.1144083 
5  -11.577 -0.1314806 
6  -115.269 -0.03609632 
7  -114.768 -0.06334914 
.... 
+0

그러나 두 개의 점으로로드 N에서 마지막으로 많은 값을 만드는 이유는 무엇입니까? 마지막 줄처럼 : 853 310.378 -8.992.958 이것은 정수를 포함하고 다른 문제 인 문자열을 포함하지 않는 배열로 각 열을 정의하려는 경우 문제가됩니다. –

+0

또한 출력에서 ​​볼 수 있듯이 Extension의 값이 실제 값과 일치하지 않습니다. 어떻게 든이 코드는 11.8284에서 118.284로 변환합니다. 그 문제를 해결하는 방법을 알고 있습니까? –

+0

나는 놀랐다. 텍스트 편집기로 파일을 열면 'Extension mm'의 값이 -118.284라는 것을 알 수 있습니다. 나머지의 경우 값은 파일과 동일하게 나타납니다. Pandas에는 열 유형을 변경할 수있는 함수가 있습니다 (예 :'df [ 'Load N'] = df [ 'Load N'] .stype (int)'). 그러나이 값으로는 그렇게 간단하지 않습니다. 어쩌면 다른 질문을 던질 수도 있습니다. –

1

당신이 CSV 파일에 원시 파일을 변환 할 수 있습니다 다음을 사용 csv 모듈은 delimeter = ''를 설정해야합니다. 그렇지 않으면 delimeter로 쉼표를 사용합니다.

import csv with open('TST0002.csv', 'r') as csvfile: reader = csv.reader(csvfile, delimiter=' ') for row in reader: //this will read each row line by line print (row[0]) //you can use row[0] to get first element of that row.

+0

은 행 [2]을 사용하여 확장 값을 가져오고 [3]로드 N 값을 가져올 수 있습니다. – Rednivrug