2017-02-26 11 views
-1

基本的に私は出力形式.rawのメカニカルテストのデータを持っており、Pythonでアクセスしたいと思っています。データ処理のための.rawファイルの読み込みと分割

区切り文字 ";"を使用してファイルを分割する必要があります。 13個の列が含まれています。 これを行うことで、私の場合、プロットを作成するために行41の配列として「Extension mm」と「Load N」の値が必要な情報を索引付けして引き出すことになります。

私は決して.rawファイルで作業していないし、何をすべきか分からない。

ファイルはここからダウンロードすることができます: https://drive.google.com/file/d/0B0GJeyFBNd4FNEp0elhIWGpWWWM/view?usp=sharing

ホープ誰かが私を助けることができます!

答えて

1

ファイルは、基本的には40行のスキップの.tsvのようです。これを試してもよろしいですか?

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) 

それともあなたが2列に直接いくつかのデータ解析をしたい場合:

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

しかし、2つの点で最後の多くの値をLoad 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'] .stat(int)')。しかし、これらの値ではそれほど単純ではありません。たぶん別の質問の対象です。 –

1

CSVファイルにRAWファイルを変換することができますが、その後使用します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] – Rednivrug

関連する問題