質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1630閲覧

フォルダ内を一括で処理したいです

nonnon615

総合スコア19

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/18 04:19

編集2021/06/18 04:30
import cv2 import numpy as np import matplotlib.pyplot as plt import csv import glob import pandas as pd infile = glob.glob("UP/*.csv") infile.sort() inum = len(infile) print('csvファイル数', inum) t = np.arange(0,8.192,0.0005) #サンプリング時間,周波数の指定(開始時間(=0),終了時間,サンプリング周期) def fft(infile, outfile): for j in range(inum): file = infile[j] ##### データの読み込みy ##### for i in range(4): print(i) def loadvtp(file,i): #ファイルの読み込みに使用する関数の定義file+'.csv' vtp = pd.read_csv(file, dtype='float', skiprows=57, usecols=[i+2], nrows=16384, engine='python', header=None) #解析対象となるデータの読み込み vtp = vtp - np.mean(vtp) #平均を引く vtp = np.squeeze(vtp) return vtp ##### 主流(x)成分出力の計算 ##### vx = loadvtp(file,i) ##### FFT ##### freq = np.fft.fftfreq(16384, 1/2000) #周波数軸の生成(サンプリング点数, サンプリング周期) f = np.fft.fft(vx) #FFT f [0]=f[0]/2 #定常成分を1/2にする(スケーリングに必要) amp = np.abs(f)/(16384/2) #FFT結果を振幅に合わせてスケーリング freq = freq[0:16384//2] #周波数軸の対称成分を除く amp = amp[0:16384//2] #振幅の対称成分を除く if i==0: yav=vx xav="" vav="" wav="" y=amp x="" v="" w="" elif i==1: yav=yav xav=vx vav="" wav="" y=y x=amp v="" w="" elif i==2: yav=yav xav=xav vav=vx wav="" y=y x=x v=amp w="" elif i==3: yav=yav xav=xav vav=vav wav=vx y=y x=x v=v w=amp print(y) print(x) print(v) print(w) df = [t, yav, xav, vav, wav, freq, y, x, v, w] df=pd.DataFrame(df).T df.to_csv('FFT.csv', index=None)

UPというフォルダ内のcsvファイルを一括で処理したいです.
フォルダ内をソートし,順番にfftをかけ,FFT.csvにすべて保存したいです.

質問したいことは,
1.下記のエラーをどのように直せばよいのか(forの文はあっている気がするのですが...)
2.FFT.csv内のシート1つにつき,1つの入力したcsvのfftのデータという保存は可能か
(1個目のcsvで得られた出力結果を1つ目のシート,2個目のcsvで得られた出力結果を2つ目のシート....)
です.

よろしくお願いします.

エラーコードです

Traceback (most recent call last): File "C:\Users\AppData\Local\Programs\Thonny\lib\ast.py", line 35, in parse return compile(source, filename, mode, PyCF_ONLY_AST) File "C:\Users\Desktop\実験データ処理(fft) VER2.py", line 25 for i in range(4): ^ IndentationError: unexpected indent

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

とりあえずの回答です。

1.下記のエラーをどのように直せばよいのか(forの文はあっている気がするのですが...)

エラーにあるとおり、インデントが違っています。

python

1 file = infile[j] 2 3 ##### データの読み込みy ##### 4 for i in range(4):

この2行は同じインデントでなくてはだめです。

エディタは何を使っていますか?
pythonは特にインデントで制御構造を表わすので、インデントの整合性が重要です。 ただし、これを目視で調整するのは困難なので、エディタの助けが必要になります。
もし、VSCodeのようなそういうサポートのできるエディタをすでに使っているとしたら、そのような機能を有効に使っていないことになります。

2.FFT.csv内のシート1つにつき,1つの入力したcsvのfftのデータという保存は可能か

csvにはexcelと違ってシートという概念がないのでそのようなことはできません。 別csvにするのがいいでしょう。
もしくは、excelブックを扱うモジュールがあるのでそれを利用する手もあります。

投稿2021/06/18 05:02

TakaiY

総合スコア13687

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nonnon615

2021/06/18 05:18

Thonnyを使用しています. csvではなく最終的にはエクセルとしたいので,エクセルで出力に変えることでうまくいくのであればどのように改良したらよいか教えていただきたいです! https://teratail.com/questions/344704 よろしければこちらに回答していただけないでしょうか?
TakaiY

2021/06/18 05:31

今は時間がないので、夜になったら見てみますね。 可回答への応答で「コードをすべて打ち直した」とありますが、入力し直したんでしょうか? 直ったからよしとするのもありですが'、今後のことを考えると、ちゃんと原因を確認して直すべきだったと思います。 エディタはちゃんとしたものを使っているようですので、インデントの再調整のしかたとか、インデントを一括して変更する方法とかあるはずなので確認してみてください。
nonnon615

2021/06/18 05:44

わかりました.ご丁寧にありがとうございます. 一度Pythonについてじっくりと勉強しなおす機会も時間を見つけて設けたいと思います!
guest

0

ベストアンサー

IndentationError: unexpected indent

と言われているのだから、まずはインデントの位置を確認するのが基本でしょう。ざっとみると、桁がずれているところが何か所かありますよね。

投稿2021/06/18 04:56

KojiDoi

総合スコア13692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nonnon615

2021/06/18 05:09

すいませんでした.ずれているところを直してもなかなか治らなかったのですが,一度コードをすべて打ち直したところ治りました.ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問