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

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

新規登録して質問してみよう
ただいま回答率
86.12%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

Pythonで実験データを積分したい

nsk
nsk

総合スコア6

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1回答

0リアクション

0クリップ

284閲覧

投稿2022/09/08 09:58

編集2022/09/08 13:27

Python3で、データロガーで取得したデータを積分したいです。
時々刻々と積分するために、関数を作成し、
CSVから読み取ったデータ(DataFrame)を積分させようと
以下のソースを記述しました。

該当のソースコード

コード

import glob import pandas as pd import re import numpy as np def atoi(text): return int(text) if text.isdigit() else text def natural_keys(text): return [ atoi(c) for c in re.split(r'(\d+)', text) ] #フォルダ指定 fol = "./DL" #フォルダ内の特定ファイル一覧の取得 files = sorted(glob.glob("*Hz*"), key = natural_keys) #ファイル数を変換 file_number = len(files) #計測器からのデータを成形 #CSVファイルの中身を読みだして、リスト形式にまとめる #行数が合わなければ、skiprowsを調整 csv_list = [] for file in files: csv_list.append(pd.read_table(file, header=None, sep="," , skiprows=10)) #CSVファイルの結合 #測定CH数に応じて、ilocの列数を変更する merge = pd.concat(csv_list) merge_csv = merge.iloc[:,1:7] #余分な列を削除 BlockSize = 1001000 HResolution = 1e-7 time = np.arange(0, BlockSize*HResolution, HResolution) df_time = pd.DataFrame(time) c=4 #切り出す列数指定 ※測定したCHを指定 df_n =pd.Series.to_frame( merge_csv[c]) #c列目 df_n_1 = df_n.iloc[0:BlockSize, :] #積分関数 def B_integral(HResolution, df_n_1): xt = 0. x = [] for i in df_n_1: xt += i * HResolution x.append(xt) return x if __name__ == '__main__': x = B_integral(df_n_1, HResolution) ### エラー runcell(0, 'C:/Users/untitled0.py') Traceback (most recent call last): File "C:\Users\untitled0.py", line 62, in <module> x = B_integral(df_n_1, HResolution) File "C:\Users\untitled0.py", line 55, in B_integral for i in df_n_1: TypeError: 'float' object is not iterable インターネットで検索しつつ対策しようとしましたが、 手詰まりとなり、ご教授いただければと思います。 ### 補足情報(FW/ツールのバージョンなど) Python3 CSVファイルの中身は、以下のようになっており、(ここには書ききれませんので省略しています)データサイズが1001000です。 Model,Xviewer,,,,, BlockNumber,1,,,,, TraceName,CH1,CH2,CH3,CH5,CH6,CH7 BlockSize,1001000,1001000,1001000,1001000,1001000,1001000 Date,2022/9/6,2022/9/6,2022/9/6,2022/9/6,2022/9/6,2022/9/6 Time,06:09.3,06:09.3,06:09.3,06:09.3,06:09.3,06:09.3 VUnit,A,A,A,V,V,V HResolution,1.00E-08,1.00E-08,1.00E-08,1.00E-08,1.00E-08,1.00E-08 HOffset,0.00E+00,0.00E+00,0.00E+00,0.00E+00,0.00E+00,0.00E+00 HUnit,s,s,s,s,s,s ,0.2008333,4.483333,-3.735833,-8.841666,-8.74,-8.99 ,0.2008333,4.483333,-3.735833,-8.841666,-8.740833,-8.990833 ,0.2008333,4.483333,-3.736667,-8.8425,-8.740833,-8.990833 ,0.2016667,4.483333,-3.736667,-8.8425,-8.740833,-8.990833 ,0.2016667,4.483333,-3.736667,-8.8425,-8.740833,-8.990833 ,0.2016667,4.483333,-3.736667,-8.8425,-8.740833,-8.990833 ,0.2025,4.4825,-3.7375,-8.8425,-8.740833,-8.990833 ,0.2025,4.4825,-3.7375,-8.8425,-8.741667,-8.991667 ,0.2025,4.4825,-3.7375,-8.843333,-8.741667,-8.991667 ,0.2033333,4.4825,-3.7375,-8.843333,-8.741667,-8.991667 ,0.2033333,4.4825,-3.738333,-8.843333,-8.741667,-8.991667 ,0.2033333,4.4825,-3.738333,-8.843333,-8.741667,-8.991667 ,0.2041667,4.4825,-3.738333,-8.843333,-8.741667,-8.991667 ,0.2041667,4.4825,-3.738333,-8.843333,-8.7425,-8.9925 ,0.2041667,4.4825,-3.738333,-8.844167,-8.7425,-8.9925 ,0.205,4.4825,-3.739167,-8.844167,-8.7425,-8.9925 ,0.205,4.481667,-3.739167,-8.844167,-8.7425,-8.9925 ,0.205,4.481667,-3.739167,-8.844167,-8.7425,-8.9925 ,0.2058333,4.481667,-3.739167,-8.844167,-8.743333,-8.9925 ,0.2058333,4.481667,-3.74,-8.844167,-8.743333,-8.993333 ,0.2058333,4.481667,-3.74,-8.845,-8.743333,-8.993333 ,0.2066667,4.481667,-3.74,-8.845,-8.743333,-8.993333 ,0.2066667,4.481667,-3.74,-8.845,-8.743333,-8.993333 ,0.2066667,4.481667,-3.740833,-8.845,-8.743333,-8.993333 ,0.2075,4.481667,-3.740833,-8.845,-8.744166,-8.993333 ,0.2075,4.480834,-3.740833,-8.845,-8.744166,-8.994166 ,0.2075,4.480834,-3.740833,-8.845834,-8.744166,-8.994166 ,0.2083333,4.480834,-3.740833,-8.845834,-8.744166,-8.994166 ,0.2083333,4.480834,-3.741667,-8.845834,-8.744166,-8.994166

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/09/08 10:02依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

meg_

2022/09/08 10:13

コードはインデントが判るように「コードの挿入」で記入してください。
jbpb0

2022/09/08 11:09

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください または、 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif を見て、そのようにしてみてください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
meg_

2022/09/08 12:39

> CSVファイルの中身は、以下のようになっており、 カンマ区切りにはなっていませんが、実際のデータはCSVなのでしょうか? カンマ区切りのデータそのままを掲載いただくと回答者が使いやすいかと思います。
meg_

2022/09/08 12:40

> TypeError: 'float' object is not iterableと表記されます。 どの行でそのエラーが発生しているのでしょうか?

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。