csvファイルのあるデータの1秒値を1分値に変換したいのですが、NaNデータや条件(2列目は負の値,3列目は正の値)だった場合は値をゼロにして、平均値を出す際の個体数(分母)を60から引いていって平均値を出したい(例えば2個目に条件に当てはまるものがあれば1つ目の平均の個体数は59にする)のですがどこが間違っているでしょうかただこのプログラムは個体の60個ごとの合計(条件に当てはまるものは0)と分母の個体数のところまでです。また,簡単に表せる場合そのプログラムとこのプログラムのどこが間違っているかを答えていただけると助かります。引っかかるのは個体数のところでa=0以降です
python
1 2import pandas as pd 3import numpy as np 4 5df = pd.read_csv('data.csv',header=None,encoding='uft=8') 6df1=df.iloc[:,1:2].where(df>=0,0) 7df1columns=['データ'] 8df1[None]=df.iloc[:,2:3].where(df<=0,0) 9df2=df1.groupby(df1.index // 60).sum() 10a=0 11b=0 12c=-1 13d=[[0for i in range(1)]for j in range(1440)] 14for x in range(86400): 15 a += 1 16 if df.iloc[x,1] < 0: 17 b += 1 18 if a== 60: 19 a=0 20 c += 1 21 d[c][0]=c 22 d=d.iloc[c,1]=b 23 b=0 24print(d)
表題には「条件にあてはまるものを除外する」となっていながら本文には「条件にあてはまるものにゼロにする」となっており、結局的に何がしたいのか分かりませんでした。仮にゼロにするほうが正しいとするのであれば、何をゼロにしたいのかが明示されていないので「間違っているところの指摘」は不可能です。更にいうと、質問部分に関連するかどうかはわかりませんが、「1秒値を1分値に変換したい」という表現と「カウント」という表現がどのような関係にあるのかもわかりませんので最終的に実現したいことから見て適切なコメントが困難です。もう少し、データの仕様と最終的に実現したいこと、そのためのアプローチ方法がわかるようにしていただければと思います。その上で、期待した通りにならない部分がどこなのかを示していただければと思います。
https://teratail.com/legal 第7条(禁止事項)(11)「複数のユーザーIDを1人で保有する行為」に該当するかもしれませんのでご注意ください。