2017-09-29 5 views
1
import pandas 
import numpy as np 
cols = ['DATA'] 
val = pandas.read_excel('ACC_HAMMER.xlsx' , names = cols) 
val.values 
main = np.array(val) 
print(main) 

出力は次のようになります。文字列注釈を削除して値を保持するにはどうすればよいですか?下記のように私を得る

[['0.00000000E+000,3.82345878E-002,1.80000000E+002'] 
['1.25000000E+000,1.90616930E-001,-6.71922991E+001'] 
['2.50000000E+000,9.72069843E-002,7.28934980E+001'] 
..., 
['1.27625000E+003,2.19000920E+000,-1.78028307E+002'] 
['1.27750000E+003,2.22545238E+000,-1.78318835E+002'] 
['1.27875000E+003,2.20842885E+000,-1.79763405E+002']] 

は、私は、文字列の注釈を削除して、データをソートする必要があります。最初の値はx、中間の値はyの大きさ、最後の値は位相です。私は削除された紐が必要であり、3つのリストがあります。

excelファイルには、すべての値がカンマで区切られた単一の列に含まれています。

+0

文字列を整数に変換する方法を尋ねていますか? – Steampunkery

+0

はい、これまでに試したことはすべて私にエラーを与えました。 –

+0

名前なしで 'pandas.read_excel'を使って、' print(val) 'をどうすればいいですか?元のスプレッドシートが3つの列であり、それぞれに数字がある場合は、その時点で必要なものがすでにあることがわかります。単一の名前を指定して未加工の値を取得してから、それからnumpy配列... –

答えて

0

pd.read_csvを使用してCSVとして読み取り、コンマを区切り文字として指定します。

+1

ありがとうございました。ファイル形式を変更し、コードを変更して機能しました。 –

0

答えは信じられないほど簡単です。 Pythonにはこのための関数があります。 float(yourstring)。リストのリストをループして、split(“,”)を使用してコンマで区切ってから、リストの返された分割をループし、float()に渡し、返された数値をリストに格納することができます。

+0

なぜ 'decimal.Decimal'ではなく' float'ですか? –

+0

精度を保つために@JonClements。 – Steampunkery

+0

Excelが浮動小数点として値を格納せず、精度がそのままの場合、Decimalは実際にnumpyでオブジェクトとして格納する必要がある型にする以外は何もしませんアレイやパンダのシリーズを使用して、それらを使用する任意のポイントの利点を失う。 –

関連する問題