2017-07-05 24 views
0

私はcsvファイル( 'Air.csv')を読み込み、いくつかの操作を行ってヘッダーを取り除いています(重要ではありません)。次に、dB_a.append(row [1])を使用して、csvデータのこの列を後でプロットできる配列に配置しました。インポートされたCSVデータの算術演算を行うには?

このデータは、DBデータである、と私はすべての値に対して簡単な式P = 10 ^(デシベル/ 10)を使用して、電源にこれを変換したいです。私はPythonの初心者なので、配列、リストなどの操作がどのように機能するのかよく分かりません。 forループを試してみたその完全なデータセットを繰り返し処理する必要があると思いますが、まだエラーが発生しています。助言がありますか?

ありがとうございました!

frequency_a=[] 
dB_a=[] 

a = csv.reader(open('Air.csv')) 

for row in itertools.islice(a, 18, 219): 
     frequency_a.append(row[0]) 
     dB_a.append(row[1]) 
     #print(frequency_a) 
     print(dB_a) 

for item in dB_a: 
    power_a = 10**(dB_a/10) 
    print(power_a) 
+0

あなたは[pandas](http://pandas.pydata.org)を知っていますか?私はそれがあなたに多くを助けることができると思う。 – Quickbeam2k1

答えて

0

@ the Jarasが投稿した回答をもとに構築する。

power_a = [10*(db/10) for db in dB_a] は10で割ってから同じで乗算するので正しくありません。

それは次のようになります。 power_a = [10**(db/10) for db in dB_a]

クレジットはまだ

注ものの@Ed Jarasに行く:あなたはこの[リストの中の何かのために何か]が何であるかを迷っている場合は 、それはリストです理解。それらはPythonが許す驚くほどエレガントな構造です。基本的に意味している何

は[..Aリストで..my要素.. .. FOR ..Add結果にこの要素..]です。あなたがしたい場合

あなたも彼らに条件文を追加することができます。

あなたがそれらについての詳細を読みたい場合は、私がチェックアウトすることをお勧め: http://www.secnetix.de/olli/Python/list_comprehensions.hawk

追加:K-シュナイダー@ :あなたはおそらく文字列に(など、パワーを分割する)数値演算を行っているが、これは、csvをインポートするときに、フィールドを文字列としてインポートできるためです。 整数で作業していることを確認するには、以下を実行してdbを文字列にキャストできます。str(db)

+0

ありがとう!これは意味がありますが、私はまだエラーが発生しています: "/: 'str'と 'int'のサポートされていないオペランドタイプ。 –

+0

@ K.Schneider私はその問題への回答を投稿に追加しました。 –

+0

これはうまくいきました。ありがとうございました! –

1

forループでは、itemはイテレータなので、それを使用する必要があります。だから、代わりに:

power_a = 10**(dB_a/10) 

使用:

power_a = 10**(item/10) 

そのデータを使用して新しいリストを作成するためのよりよい方法が考えられます。

power_a = [10**(db/10) for db in dB_a] 

EDIT:他の問題で指摘したようにコメントは、値が文字列であることです。 .csvファイルは本質的にテキストファイルなので、整数ではなく文字列の集合です。あなたにできることは、あなたが全部または浮動小数点数を持っているかどうかによって、int(db)またはfloat(db)を使用して数値に変換されます。

EDIT2:@Jによって指摘されています。 Meijers、私はべき乗の代わりに乗算を使用していました - これは答えで修正されています。

+0

ありがとうございます!これは意味がありますが、私はまだエラーが発生しています: "/: 'str'と 'int'のサポートされていないオペランドタイプ。 –

+0

私は返信を編集し、それをテストすることもできました。希望が役立ちます。 –

+0

コードをどこで実装できますか? –

関連する問題